KILLED proof of input_XFIvbRiFMr.trs # AProVE Commit ID: aff8ecad908e01718a4c36e68d2e55d5e0f16e15 fuhs 20220216 unpublished The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). (0) CpxTRS (1) RenamingProof [BOTH BOUNDS(ID, ID), 0 ms] (2) CpxTRS (3) RelTrsToTrsProof [UPPER BOUND(ID), 0 ms] (4) CpxTRS (5) RelTrsToWeightedTrsProof [UPPER BOUND(ID), 0 ms] (6) CpxWeightedTrs (7) TypeInferenceProof [BOTH BOUNDS(ID, ID), 0 ms] (8) CpxTypedWeightedTrs (9) CompletionProof [UPPER BOUND(ID), 0 ms] (10) CpxTypedWeightedCompleteTrs (11) NarrowingProof [BOTH BOUNDS(ID, ID), 3113 ms] (12) CpxTypedWeightedCompleteTrs (13) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 21 ms] (14) CpxRNTS (15) SimplificationProof [BOTH BOUNDS(ID, ID), 0 ms] (16) CpxRNTS (17) CompletionProof [UPPER BOUND(ID), 0 ms] (18) CpxTypedWeightedCompleteTrs (19) CpxTypedWeightedTrsToRntsProof [UPPER BOUND(ID), 0 ms] (20) CpxRNTS (21) CpxTrsToCdtProof [UPPER BOUND(ID), 56 ms] (22) CdtProblem (23) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (24) CdtProblem (25) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 23 ms] (26) CdtProblem (27) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (28) CdtProblem (29) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 18 ms] (30) CdtProblem (31) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (32) CdtProblem (33) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 24 ms] (34) CdtProblem (35) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (36) CdtProblem (37) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 21 ms] (38) CdtProblem (39) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 1 ms] (40) CdtProblem (41) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 94 ms] (42) CdtProblem (43) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (44) CdtProblem (45) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 68 ms] (46) CdtProblem (47) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (48) CdtProblem (49) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 38 ms] (50) CdtProblem (51) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 5 ms] (52) CdtProblem (53) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 43 ms] (54) CdtProblem (55) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (56) CdtProblem (57) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 83 ms] (58) CdtProblem (59) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (60) CdtProblem (61) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 21 ms] (62) CdtProblem (63) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 64 ms] (64) CdtProblem (65) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (66) CdtProblem (67) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (68) CdtProblem (69) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 131 ms] (70) CdtProblem (71) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 0 ms] (72) CdtProblem (73) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 21 ms] (74) CdtProblem (75) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 169 ms] (76) CdtProblem (77) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 36 ms] (78) CdtProblem (79) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 90 ms] (80) CdtProblem (81) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 12 ms] (82) CdtProblem (83) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (84) CdtProblem (85) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 129 ms] (86) CdtProblem (87) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 13 ms] (88) CdtProblem (89) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 24 ms] (90) CdtProblem (91) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 103 ms] (92) CdtProblem (93) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 26 ms] (94) CdtProblem (95) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 26 ms] (96) CdtProblem (97) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 129 ms] (98) CdtProblem (99) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 26 ms] (100) CdtProblem (101) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 26 ms] (102) CdtProblem (103) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 118 ms] (104) CdtProblem (105) CdtLeafRemovalProof [BOTH BOUNDS(ID, ID), 16 ms] (106) CdtProblem (107) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (108) CdtProblem (109) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 194 ms] (110) CdtProblem (111) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (112) CdtProblem (113) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 171 ms] (114) CdtProblem (115) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 17 ms] (116) CdtProblem (117) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 294 ms] (118) CdtProblem (119) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 24 ms] (120) CdtProblem (121) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 253 ms] (122) CdtProblem (123) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 8 ms] (124) CdtProblem (125) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 189 ms] (126) CdtProblem (127) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 25 ms] (128) CdtProblem (129) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 130 ms] (130) CdtProblem (131) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 0 ms] (132) CdtProblem (133) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 244 ms] (134) CdtProblem (135) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 18 ms] (136) CdtProblem (137) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 211 ms] (138) CdtProblem (139) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 39 ms] (140) CdtProblem (141) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 202 ms] (142) CdtProblem (143) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 15 ms] (144) CdtProblem (145) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 264 ms] (146) CdtProblem (147) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 29 ms] (148) CdtProblem (149) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 224 ms] (150) CdtProblem (151) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 39 ms] (152) CdtProblem (153) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 251 ms] (154) CdtProblem (155) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 32 ms] (156) CdtProblem (157) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 150 ms] (158) CdtProblem (159) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 24 ms] (160) CdtProblem (161) CdtNarrowingProof [BOTH BOUNDS(ID, ID), 249 ms] (162) CdtProblem (163) CdtRhsSimplificationProcessorProof [BOTH BOUNDS(ID, ID), 25 ms] (164) CdtProblem ---------------------------------------- (0) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) a__and(tt, X) -> mark(X) a__fst(pair(X, Y)) -> mark(X) a__head(cons(N, XS)) -> mark(N) a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) a__snd(pair(X, Y)) -> mark(Y) a__splitAt(0, XS) -> pair(nil, mark(XS)) a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) a__tail(cons(N, XS)) -> mark(XS) a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) mark(snd(X)) -> a__snd(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(fst(X)) -> a__fst(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(natsFrom(X)) -> a__natsFrom(mark(X)) mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) mark(tail(X)) -> a__tail(mark(X)) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(tt) -> tt mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(s(X)) -> s(mark(X)) mark(0) -> 0 mark(nil) -> nil a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) a__U12(X1, X2) -> U12(X1, X2) a__splitAt(X1, X2) -> splitAt(X1, X2) a__afterNth(X1, X2) -> afterNth(X1, X2) a__snd(X) -> snd(X) a__and(X1, X2) -> and(X1, X2) a__fst(X) -> fst(X) a__head(X) -> head(X) a__natsFrom(X) -> natsFrom(X) a__sel(X1, X2) -> sel(X1, X2) a__tail(X) -> tail(X) a__take(X1, X2) -> take(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (1) RenamingProof (BOTH BOUNDS(ID, ID)) Renamed function symbols to avoid clashes with predefined symbol. ---------------------------------------- (2) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) a__and(tt, X) -> mark(X) a__fst(pair(X, Y)) -> mark(X) a__head(cons(N, XS)) -> mark(N) a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) a__snd(pair(X, Y)) -> mark(Y) a__splitAt(0', XS) -> pair(nil, mark(XS)) a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) a__tail(cons(N, XS)) -> mark(XS) a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) mark(snd(X)) -> a__snd(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(fst(X)) -> a__fst(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(natsFrom(X)) -> a__natsFrom(mark(X)) mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) mark(tail(X)) -> a__tail(mark(X)) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(tt) -> tt mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(s(X)) -> s(mark(X)) mark(0') -> 0' mark(nil) -> nil a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) a__U12(X1, X2) -> U12(X1, X2) a__splitAt(X1, X2) -> splitAt(X1, X2) a__afterNth(X1, X2) -> afterNth(X1, X2) a__snd(X) -> snd(X) a__and(X1, X2) -> and(X1, X2) a__fst(X) -> fst(X) a__head(X) -> head(X) a__natsFrom(X) -> natsFrom(X) a__sel(X1, X2) -> sel(X1, X2) a__tail(X) -> tail(X) a__take(X1, X2) -> take(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (3) RelTrsToTrsProof (UPPER BOUND(ID)) transformed relative TRS to TRS ---------------------------------------- (4) Obligation: The Runtime Complexity (parallel-innermost) of the given CpxTRS could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) a__and(tt, X) -> mark(X) a__fst(pair(X, Y)) -> mark(X) a__head(cons(N, XS)) -> mark(N) a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) a__snd(pair(X, Y)) -> mark(Y) a__splitAt(0, XS) -> pair(nil, mark(XS)) a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) a__tail(cons(N, XS)) -> mark(XS) a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) mark(U12(X1, X2)) -> a__U12(mark(X1), X2) mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) mark(snd(X)) -> a__snd(mark(X)) mark(and(X1, X2)) -> a__and(mark(X1), X2) mark(fst(X)) -> a__fst(mark(X)) mark(head(X)) -> a__head(mark(X)) mark(natsFrom(X)) -> a__natsFrom(mark(X)) mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) mark(tail(X)) -> a__tail(mark(X)) mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) mark(tt) -> tt mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) mark(cons(X1, X2)) -> cons(mark(X1), X2) mark(s(X)) -> s(mark(X)) mark(0) -> 0 mark(nil) -> nil a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) a__U12(X1, X2) -> U12(X1, X2) a__splitAt(X1, X2) -> splitAt(X1, X2) a__afterNth(X1, X2) -> afterNth(X1, X2) a__snd(X) -> snd(X) a__and(X1, X2) -> and(X1, X2) a__fst(X) -> fst(X) a__head(X) -> head(X) a__natsFrom(X) -> natsFrom(X) a__sel(X1, X2) -> sel(X1, X2) a__tail(X) -> tail(X) a__take(X1, X2) -> take(X1, X2) S is empty. Rewrite Strategy: PARALLEL_INNERMOST ---------------------------------------- (5) RelTrsToWeightedTrsProof (UPPER BOUND(ID)) Transformed relative TRS to weighted TRS ---------------------------------------- (6) Obligation: The Runtime Complexity (innermost) of the given CpxWeightedTrs could be proven to be BOUNDS(1, INF). The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) [1] a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) [1] a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) [1] a__and(tt, X) -> mark(X) [1] a__fst(pair(X, Y)) -> mark(X) [1] a__head(cons(N, XS)) -> mark(N) [1] a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) [1] a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) [1] a__snd(pair(X, Y)) -> mark(Y) [1] a__splitAt(0, XS) -> pair(nil, mark(XS)) [1] a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) [1] a__tail(cons(N, XS)) -> mark(XS) [1] a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) [1] mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) [1] mark(U12(X1, X2)) -> a__U12(mark(X1), X2) [1] mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) [1] mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) [1] mark(snd(X)) -> a__snd(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(fst(X)) -> a__fst(mark(X)) [1] mark(head(X)) -> a__head(mark(X)) [1] mark(natsFrom(X)) -> a__natsFrom(mark(X)) [1] mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) [1] mark(tail(X)) -> a__tail(mark(X)) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(tt) -> tt [1] mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) [1] a__U12(X1, X2) -> U12(X1, X2) [1] a__splitAt(X1, X2) -> splitAt(X1, X2) [1] a__afterNth(X1, X2) -> afterNth(X1, X2) [1] a__snd(X) -> snd(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__fst(X) -> fst(X) [1] a__head(X) -> head(X) [1] a__natsFrom(X) -> natsFrom(X) [1] a__sel(X1, X2) -> sel(X1, X2) [1] a__tail(X) -> tail(X) [1] a__take(X1, X2) -> take(X1, X2) [1] Rewrite Strategy: INNERMOST ---------------------------------------- (7) TypeInferenceProof (BOTH BOUNDS(ID, ID)) Infered types. ---------------------------------------- (8) Obligation: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) [1] a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) [1] a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) [1] a__and(tt, X) -> mark(X) [1] a__fst(pair(X, Y)) -> mark(X) [1] a__head(cons(N, XS)) -> mark(N) [1] a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) [1] a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) [1] a__snd(pair(X, Y)) -> mark(Y) [1] a__splitAt(0, XS) -> pair(nil, mark(XS)) [1] a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) [1] a__tail(cons(N, XS)) -> mark(XS) [1] a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) [1] mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) [1] mark(U12(X1, X2)) -> a__U12(mark(X1), X2) [1] mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) [1] mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) [1] mark(snd(X)) -> a__snd(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(fst(X)) -> a__fst(mark(X)) [1] mark(head(X)) -> a__head(mark(X)) [1] mark(natsFrom(X)) -> a__natsFrom(mark(X)) [1] mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) [1] mark(tail(X)) -> a__tail(mark(X)) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(tt) -> tt [1] mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) [1] a__U12(X1, X2) -> U12(X1, X2) [1] a__splitAt(X1, X2) -> splitAt(X1, X2) [1] a__afterNth(X1, X2) -> afterNth(X1, X2) [1] a__snd(X) -> snd(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__fst(X) -> fst(X) [1] a__head(X) -> head(X) [1] a__natsFrom(X) -> natsFrom(X) [1] a__sel(X1, X2) -> sel(X1, X2) [1] a__tail(X) -> tail(X) [1] a__take(X1, X2) -> take(X1, X2) [1] The TRS has the following type information: a__U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take mark :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take pair :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take cons :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take s :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take 0 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take nil :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take Rewrite Strategy: INNERMOST ---------------------------------------- (9) CompletionProof (UPPER BOUND(ID)) The transformation into a RNTS is sound, since: (a) The obligation is a constructor system where every type has a constant constructor, (b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols: none (c) The following functions are completely defined: a__splitAt_2 mark_1 a__afterNth_2 a__fst_1 a__tail_1 a__U11_4 a__snd_1 a__U12_2 a__take_2 a__sel_2 a__and_2 a__natsFrom_1 a__head_1 Due to the following rules being added: none And the following fresh constants: none ---------------------------------------- (10) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) [1] a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) [1] a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) [1] a__and(tt, X) -> mark(X) [1] a__fst(pair(X, Y)) -> mark(X) [1] a__head(cons(N, XS)) -> mark(N) [1] a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) [1] a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) [1] a__snd(pair(X, Y)) -> mark(Y) [1] a__splitAt(0, XS) -> pair(nil, mark(XS)) [1] a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) [1] a__tail(cons(N, XS)) -> mark(XS) [1] a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) [1] mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) [1] mark(U12(X1, X2)) -> a__U12(mark(X1), X2) [1] mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) [1] mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) [1] mark(snd(X)) -> a__snd(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(fst(X)) -> a__fst(mark(X)) [1] mark(head(X)) -> a__head(mark(X)) [1] mark(natsFrom(X)) -> a__natsFrom(mark(X)) [1] mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) [1] mark(tail(X)) -> a__tail(mark(X)) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(tt) -> tt [1] mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) [1] a__U12(X1, X2) -> U12(X1, X2) [1] a__splitAt(X1, X2) -> splitAt(X1, X2) [1] a__afterNth(X1, X2) -> afterNth(X1, X2) [1] a__snd(X) -> snd(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__fst(X) -> fst(X) [1] a__head(X) -> head(X) [1] a__natsFrom(X) -> natsFrom(X) [1] a__sel(X1, X2) -> sel(X1, X2) [1] a__tail(X) -> tail(X) [1] a__take(X1, X2) -> take(X1, X2) [1] The TRS has the following type information: a__U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take mark :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take pair :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take cons :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take s :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take 0 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take nil :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take Rewrite Strategy: INNERMOST ---------------------------------------- (11) NarrowingProof (BOTH BOUNDS(ID, ID)) Narrowed the inner basic terms of all right-hand sides by a single narrowing step. ---------------------------------------- (12) Obligation: Runtime Complexity Weighted TRS where critical functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) [1] a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) [1] a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) [1] a__and(tt, X) -> mark(X) [1] a__fst(pair(X, Y)) -> mark(X) [1] a__head(cons(N, XS)) -> mark(N) [1] a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) [1] a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) [1] a__snd(pair(X, Y)) -> mark(Y) [1] a__splitAt(0, XS) -> pair(nil, mark(XS)) [1] a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) [1] a__tail(cons(N, XS)) -> mark(XS) [1] a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) [1] mark(U11(U11(X1683, X2683, X3147, X4136), X2, X3, X4)) -> a__U11(a__U11(mark(X1683), X2683, X3147, X4136), X2, X3, X4) [2] mark(U11(U12(X1684, X2684), X2, X3, X4)) -> a__U11(a__U12(mark(X1684), X2684), X2, X3, X4) [2] mark(U11(splitAt(X1685, X2685), X2, X3, X4)) -> a__U11(a__splitAt(mark(X1685), mark(X2685)), X2, X3, X4) [2] mark(U11(afterNth(X1686, X2686), X2, X3, X4)) -> a__U11(a__afterNth(mark(X1686), mark(X2686)), X2, X3, X4) [2] mark(U11(snd(X722), X2, X3, X4)) -> a__U11(a__snd(mark(X722)), X2, X3, X4) [2] mark(U11(and(X1687, X2687), X2, X3, X4)) -> a__U11(a__and(mark(X1687), X2687), X2, X3, X4) [2] mark(U11(fst(X723), X2, X3, X4)) -> a__U11(a__fst(mark(X723)), X2, X3, X4) [2] mark(U11(head(X724), X2, X3, X4)) -> a__U11(a__head(mark(X724)), X2, X3, X4) [2] mark(U11(natsFrom(X725), X2, X3, X4)) -> a__U11(a__natsFrom(mark(X725)), X2, X3, X4) [2] mark(U11(sel(X1688, X2688), X2, X3, X4)) -> a__U11(a__sel(mark(X1688), mark(X2688)), X2, X3, X4) [2] mark(U11(tail(X726), X2, X3, X4)) -> a__U11(a__tail(mark(X726)), X2, X3, X4) [2] mark(U11(take(X1689, X2689), X2, X3, X4)) -> a__U11(a__take(mark(X1689), mark(X2689)), X2, X3, X4) [2] mark(U11(tt, X2, X3, X4)) -> a__U11(tt, X2, X3, X4) [2] mark(U11(pair(X1690, X2690), X2, X3, X4)) -> a__U11(pair(mark(X1690), mark(X2690)), X2, X3, X4) [2] mark(U11(cons(X1691, X2691), X2, X3, X4)) -> a__U11(cons(mark(X1691), X2691), X2, X3, X4) [2] mark(U11(s(X727), X2, X3, X4)) -> a__U11(s(mark(X727)), X2, X3, X4) [2] mark(U11(0, X2, X3, X4)) -> a__U11(0, X2, X3, X4) [2] mark(U11(nil, X2, X3, X4)) -> a__U11(nil, X2, X3, X4) [2] mark(U12(U11(X1692, X2692, X3148, X4137), X2)) -> a__U12(a__U11(mark(X1692), X2692, X3148, X4137), X2) [2] mark(U12(U12(X1693, X2693), X2)) -> a__U12(a__U12(mark(X1693), X2693), X2) [2] mark(U12(splitAt(X1694, X2694), X2)) -> a__U12(a__splitAt(mark(X1694), mark(X2694)), X2) [2] mark(U12(afterNth(X1695, X2695), X2)) -> a__U12(a__afterNth(mark(X1695), mark(X2695)), X2) [2] mark(U12(snd(X728), X2)) -> a__U12(a__snd(mark(X728)), X2) [2] mark(U12(and(X1696, X2696), X2)) -> a__U12(a__and(mark(X1696), X2696), X2) [2] mark(U12(fst(X729), X2)) -> a__U12(a__fst(mark(X729)), X2) [2] mark(U12(head(X730), X2)) -> a__U12(a__head(mark(X730)), X2) [2] mark(U12(natsFrom(X731), X2)) -> a__U12(a__natsFrom(mark(X731)), X2) [2] mark(U12(sel(X1697, X2697), X2)) -> a__U12(a__sel(mark(X1697), mark(X2697)), X2) [2] mark(U12(tail(X732), X2)) -> a__U12(a__tail(mark(X732)), X2) [2] mark(U12(take(X1698, X2698), X2)) -> a__U12(a__take(mark(X1698), mark(X2698)), X2) [2] mark(U12(tt, X2)) -> a__U12(tt, X2) [2] mark(U12(pair(X1699, X2699), X2)) -> a__U12(pair(mark(X1699), mark(X2699)), X2) [2] mark(U12(cons(X1700, X2700), X2)) -> a__U12(cons(mark(X1700), X2700), X2) [2] mark(U12(s(X733), X2)) -> a__U12(s(mark(X733)), X2) [2] mark(U12(0, X2)) -> a__U12(0, X2) [2] mark(U12(nil, X2)) -> a__U12(nil, X2) [2] mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) [1] mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) [1] mark(snd(U11(X11043, X21043, X3187, X4176))) -> a__snd(a__U11(mark(X11043), X21043, X3187, X4176)) [2] mark(snd(U12(X11044, X21044))) -> a__snd(a__U12(mark(X11044), X21044)) [2] mark(snd(splitAt(X11045, X21045))) -> a__snd(a__splitAt(mark(X11045), mark(X21045))) [2] mark(snd(afterNth(X11046, X21046))) -> a__snd(a__afterNth(mark(X11046), mark(X21046))) [2] mark(snd(snd(X962))) -> a__snd(a__snd(mark(X962))) [2] mark(snd(and(X11047, X21047))) -> a__snd(a__and(mark(X11047), X21047)) [2] mark(snd(fst(X963))) -> a__snd(a__fst(mark(X963))) [2] mark(snd(head(X964))) -> a__snd(a__head(mark(X964))) [2] mark(snd(natsFrom(X965))) -> a__snd(a__natsFrom(mark(X965))) [2] mark(snd(sel(X11048, X21048))) -> a__snd(a__sel(mark(X11048), mark(X21048))) [2] mark(snd(tail(X966))) -> a__snd(a__tail(mark(X966))) [2] mark(snd(take(X11049, X21049))) -> a__snd(a__take(mark(X11049), mark(X21049))) [2] mark(snd(tt)) -> a__snd(tt) [2] mark(snd(pair(X11050, X21050))) -> a__snd(pair(mark(X11050), mark(X21050))) [2] mark(snd(cons(X11051, X21051))) -> a__snd(cons(mark(X11051), X21051)) [2] mark(snd(s(X967))) -> a__snd(s(mark(X967))) [2] mark(snd(0)) -> a__snd(0) [2] mark(snd(nil)) -> a__snd(nil) [2] mark(and(U11(X11052, X21052, X3188, X4177), X2)) -> a__and(a__U11(mark(X11052), X21052, X3188, X4177), X2) [2] mark(and(U12(X11053, X21053), X2)) -> a__and(a__U12(mark(X11053), X21053), X2) [2] mark(and(splitAt(X11054, X21054), X2)) -> a__and(a__splitAt(mark(X11054), mark(X21054)), X2) [2] mark(and(afterNth(X11055, X21055), X2)) -> a__and(a__afterNth(mark(X11055), mark(X21055)), X2) [2] mark(and(snd(X968), X2)) -> a__and(a__snd(mark(X968)), X2) [2] mark(and(and(X11056, X21056), X2)) -> a__and(a__and(mark(X11056), X21056), X2) [2] mark(and(fst(X969), X2)) -> a__and(a__fst(mark(X969)), X2) [2] mark(and(head(X970), X2)) -> a__and(a__head(mark(X970)), X2) [2] mark(and(natsFrom(X971), X2)) -> a__and(a__natsFrom(mark(X971)), X2) [2] mark(and(sel(X11057, X21057), X2)) -> a__and(a__sel(mark(X11057), mark(X21057)), X2) [2] mark(and(tail(X972), X2)) -> a__and(a__tail(mark(X972)), X2) [2] mark(and(take(X11058, X21058), X2)) -> a__and(a__take(mark(X11058), mark(X21058)), X2) [2] mark(and(tt, X2)) -> a__and(tt, X2) [2] mark(and(pair(X11059, X21059), X2)) -> a__and(pair(mark(X11059), mark(X21059)), X2) [2] mark(and(cons(X11060, X21060), X2)) -> a__and(cons(mark(X11060), X21060), X2) [2] mark(and(s(X973), X2)) -> a__and(s(mark(X973)), X2) [2] mark(and(0, X2)) -> a__and(0, X2) [2] mark(and(nil, X2)) -> a__and(nil, X2) [2] mark(fst(U11(X11061, X21061, X3189, X4178))) -> a__fst(a__U11(mark(X11061), X21061, X3189, X4178)) [2] mark(fst(U12(X11062, X21062))) -> a__fst(a__U12(mark(X11062), X21062)) [2] mark(fst(splitAt(X11063, X21063))) -> a__fst(a__splitAt(mark(X11063), mark(X21063))) [2] mark(fst(afterNth(X11064, X21064))) -> a__fst(a__afterNth(mark(X11064), mark(X21064))) [2] mark(fst(snd(X974))) -> a__fst(a__snd(mark(X974))) [2] mark(fst(and(X11065, X21065))) -> a__fst(a__and(mark(X11065), X21065)) [2] mark(fst(fst(X975))) -> a__fst(a__fst(mark(X975))) [2] mark(fst(head(X976))) -> a__fst(a__head(mark(X976))) [2] mark(fst(natsFrom(X977))) -> a__fst(a__natsFrom(mark(X977))) [2] mark(fst(sel(X11066, X21066))) -> a__fst(a__sel(mark(X11066), mark(X21066))) [2] mark(fst(tail(X978))) -> a__fst(a__tail(mark(X978))) [2] mark(fst(take(X11067, X21067))) -> a__fst(a__take(mark(X11067), mark(X21067))) [2] mark(fst(tt)) -> a__fst(tt) [2] mark(fst(pair(X11068, X21068))) -> a__fst(pair(mark(X11068), mark(X21068))) [2] mark(fst(cons(X11069, X21069))) -> a__fst(cons(mark(X11069), X21069)) [2] mark(fst(s(X979))) -> a__fst(s(mark(X979))) [2] mark(fst(0)) -> a__fst(0) [2] mark(fst(nil)) -> a__fst(nil) [2] mark(head(U11(X11070, X21070, X3190, X4179))) -> a__head(a__U11(mark(X11070), X21070, X3190, X4179)) [2] mark(head(U12(X11071, X21071))) -> a__head(a__U12(mark(X11071), X21071)) [2] mark(head(splitAt(X11072, X21072))) -> a__head(a__splitAt(mark(X11072), mark(X21072))) [2] mark(head(afterNth(X11073, X21073))) -> a__head(a__afterNth(mark(X11073), mark(X21073))) [2] mark(head(snd(X980))) -> a__head(a__snd(mark(X980))) [2] mark(head(and(X11074, X21074))) -> a__head(a__and(mark(X11074), X21074)) [2] mark(head(fst(X981))) -> a__head(a__fst(mark(X981))) [2] mark(head(head(X982))) -> a__head(a__head(mark(X982))) [2] mark(head(natsFrom(X983))) -> a__head(a__natsFrom(mark(X983))) [2] mark(head(sel(X11075, X21075))) -> a__head(a__sel(mark(X11075), mark(X21075))) [2] mark(head(tail(X984))) -> a__head(a__tail(mark(X984))) [2] mark(head(take(X11076, X21076))) -> a__head(a__take(mark(X11076), mark(X21076))) [2] mark(head(tt)) -> a__head(tt) [2] mark(head(pair(X11077, X21077))) -> a__head(pair(mark(X11077), mark(X21077))) [2] mark(head(cons(X11078, X21078))) -> a__head(cons(mark(X11078), X21078)) [2] mark(head(s(X985))) -> a__head(s(mark(X985))) [2] mark(head(0)) -> a__head(0) [2] mark(head(nil)) -> a__head(nil) [2] mark(natsFrom(U11(X11079, X21079, X3191, X4180))) -> a__natsFrom(a__U11(mark(X11079), X21079, X3191, X4180)) [2] mark(natsFrom(U12(X11080, X21080))) -> a__natsFrom(a__U12(mark(X11080), X21080)) [2] mark(natsFrom(splitAt(X11081, X21081))) -> a__natsFrom(a__splitAt(mark(X11081), mark(X21081))) [2] mark(natsFrom(afterNth(X11082, X21082))) -> a__natsFrom(a__afterNth(mark(X11082), mark(X21082))) [2] mark(natsFrom(snd(X986))) -> a__natsFrom(a__snd(mark(X986))) [2] mark(natsFrom(and(X11083, X21083))) -> a__natsFrom(a__and(mark(X11083), X21083)) [2] mark(natsFrom(fst(X987))) -> a__natsFrom(a__fst(mark(X987))) [2] mark(natsFrom(head(X988))) -> a__natsFrom(a__head(mark(X988))) [2] mark(natsFrom(natsFrom(X989))) -> a__natsFrom(a__natsFrom(mark(X989))) [2] mark(natsFrom(sel(X11084, X21084))) -> a__natsFrom(a__sel(mark(X11084), mark(X21084))) [2] mark(natsFrom(tail(X990))) -> a__natsFrom(a__tail(mark(X990))) [2] mark(natsFrom(take(X11085, X21085))) -> a__natsFrom(a__take(mark(X11085), mark(X21085))) [2] mark(natsFrom(tt)) -> a__natsFrom(tt) [2] mark(natsFrom(pair(X11086, X21086))) -> a__natsFrom(pair(mark(X11086), mark(X21086))) [2] mark(natsFrom(cons(X11087, X21087))) -> a__natsFrom(cons(mark(X11087), X21087)) [2] mark(natsFrom(s(X991))) -> a__natsFrom(s(mark(X991))) [2] mark(natsFrom(0)) -> a__natsFrom(0) [2] mark(natsFrom(nil)) -> a__natsFrom(nil) [2] mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) [1] mark(tail(U11(X11259, X21259, X3211, X4200))) -> a__tail(a__U11(mark(X11259), X21259, X3211, X4200)) [2] mark(tail(U12(X11260, X21260))) -> a__tail(a__U12(mark(X11260), X21260)) [2] mark(tail(splitAt(X11261, X21261))) -> a__tail(a__splitAt(mark(X11261), mark(X21261))) [2] mark(tail(afterNth(X11262, X21262))) -> a__tail(a__afterNth(mark(X11262), mark(X21262))) [2] mark(tail(snd(X2006))) -> a__tail(a__snd(mark(X2006))) [2] mark(tail(and(X11263, X21263))) -> a__tail(a__and(mark(X11263), X21263)) [2] mark(tail(fst(X2007))) -> a__tail(a__fst(mark(X2007))) [2] mark(tail(head(X2008))) -> a__tail(a__head(mark(X2008))) [2] mark(tail(natsFrom(X2009))) -> a__tail(a__natsFrom(mark(X2009))) [2] mark(tail(sel(X11264, X21264))) -> a__tail(a__sel(mark(X11264), mark(X21264))) [2] mark(tail(tail(X2010))) -> a__tail(a__tail(mark(X2010))) [2] mark(tail(take(X11265, X21265))) -> a__tail(a__take(mark(X11265), mark(X21265))) [2] mark(tail(tt)) -> a__tail(tt) [2] mark(tail(pair(X11266, X21266))) -> a__tail(pair(mark(X11266), mark(X21266))) [2] mark(tail(cons(X11267, X21267))) -> a__tail(cons(mark(X11267), X21267)) [2] mark(tail(s(X2011))) -> a__tail(s(mark(X2011))) [2] mark(tail(0)) -> a__tail(0) [2] mark(tail(nil)) -> a__tail(nil) [2] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(tt) -> tt [1] mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) [1] a__U12(X1, X2) -> U12(X1, X2) [1] a__splitAt(X1, X2) -> splitAt(X1, X2) [1] a__afterNth(X1, X2) -> afterNth(X1, X2) [1] a__snd(X) -> snd(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__fst(X) -> fst(X) [1] a__head(X) -> head(X) [1] a__natsFrom(X) -> natsFrom(X) [1] a__sel(X1, X2) -> sel(X1, X2) [1] a__tail(X) -> tail(X) [1] a__take(X1, X2) -> take(X1, X2) [1] The TRS has the following type information: a__U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take mark :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take pair :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take cons :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take s :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take 0 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take nil :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take Rewrite Strategy: INNERMOST ---------------------------------------- (13) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 nil => 1 ---------------------------------------- (14) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z', z'', z1) -{ 1 }-> a__U12(a__splitAt(mark(N), mark(XS)), X) :|: z = 2, z'' = X, X >= 0, z' = N, z1 = XS, XS >= 0, N >= 0 a__U11(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__U12(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__U12(z, z') -{ 1 }-> 1 + (1 + mark(X) + YS) + mark(ZS) :|: z' = X, z = 1 + YS + ZS, YS >= 0, X >= 0, ZS >= 0 a__afterNth(z, z') -{ 1 }-> a__snd(a__splitAt(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__afterNth(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__fst(z) -{ 1 }-> mark(X) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__fst(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__head(z) -{ 1 }-> mark(N) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__head(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__natsFrom(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__natsFrom(z) -{ 1 }-> 1 + mark(N) + (1 + (1 + N)) :|: z = N, N >= 0 a__sel(z, z') -{ 1 }-> a__head(a__afterNth(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__sel(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__snd(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__snd(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__splitAt(z, z') -{ 1 }-> a__U11(2, N, X, XS) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0 a__splitAt(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__splitAt(z, z') -{ 1 }-> 1 + 1 + mark(XS) :|: z' = XS, z = 0, XS >= 0 a__tail(z) -{ 1 }-> mark(XS) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__tail(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__fst(a__splitAt(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__tail(a__take(mark(X11265), mark(X21265))) :|: X11265 >= 0, X21265 >= 0, z = 1 + (1 + X11265 + X21265) mark(z) -{ 2 }-> a__tail(a__tail(mark(X2010))) :|: X2010 >= 0, z = 1 + (1 + X2010) mark(z) -{ 2 }-> a__tail(a__splitAt(mark(X11261), mark(X21261))) :|: X11261 >= 0, z = 1 + (1 + X11261 + X21261), X21261 >= 0 mark(z) -{ 2 }-> a__tail(a__snd(mark(X2006))) :|: z = 1 + (1 + X2006), X2006 >= 0 mark(z) -{ 2 }-> a__tail(a__sel(mark(X11264), mark(X21264))) :|: X11264 >= 0, z = 1 + (1 + X11264 + X21264), X21264 >= 0 mark(z) -{ 2 }-> a__tail(a__natsFrom(mark(X2009))) :|: z = 1 + (1 + X2009), X2009 >= 0 mark(z) -{ 2 }-> a__tail(a__head(mark(X2008))) :|: X2008 >= 0, z = 1 + (1 + X2008) mark(z) -{ 2 }-> a__tail(a__fst(mark(X2007))) :|: z = 1 + (1 + X2007), X2007 >= 0 mark(z) -{ 2 }-> a__tail(a__and(mark(X11263), X21263)) :|: z = 1 + (1 + X11263 + X21263), X21263 >= 0, X11263 >= 0 mark(z) -{ 2 }-> a__tail(a__afterNth(mark(X11262), mark(X21262))) :|: X21262 >= 0, X11262 >= 0, z = 1 + (1 + X11262 + X21262) mark(z) -{ 2 }-> a__tail(a__U12(mark(X11260), X21260)) :|: z = 1 + (1 + X11260 + X21260), X21260 >= 0, X11260 >= 0 mark(z) -{ 2 }-> a__tail(a__U11(mark(X11259), X21259, X3211, X4200)) :|: X11259 >= 0, X21259 >= 0, X3211 >= 0, X4200 >= 0, z = 1 + (1 + X11259 + X21259 + X3211 + X4200) mark(z) -{ 2 }-> a__tail(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__tail(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__tail(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__tail(1 + mark(X2011)) :|: X2011 >= 0, z = 1 + (1 + X2011) mark(z) -{ 2 }-> a__tail(1 + mark(X11266) + mark(X21266)) :|: X21266 >= 0, X11266 >= 0, z = 1 + (1 + X11266 + X21266) mark(z) -{ 2 }-> a__tail(1 + mark(X11267) + X21267) :|: X21267 >= 0, X11267 >= 0, z = 1 + (1 + X11267 + X21267) mark(z) -{ 1 }-> a__splitAt(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__snd(a__take(mark(X11049), mark(X21049))) :|: X21049 >= 0, z = 1 + (1 + X11049 + X21049), X11049 >= 0 mark(z) -{ 2 }-> a__snd(a__tail(mark(X966))) :|: z = 1 + (1 + X966), X966 >= 0 mark(z) -{ 2 }-> a__snd(a__splitAt(mark(X11045), mark(X21045))) :|: X11045 >= 0, X21045 >= 0, z = 1 + (1 + X11045 + X21045) mark(z) -{ 2 }-> a__snd(a__snd(mark(X962))) :|: z = 1 + (1 + X962), X962 >= 0 mark(z) -{ 2 }-> a__snd(a__sel(mark(X11048), mark(X21048))) :|: X21048 >= 0, z = 1 + (1 + X11048 + X21048), X11048 >= 0 mark(z) -{ 2 }-> a__snd(a__natsFrom(mark(X965))) :|: z = 1 + (1 + X965), X965 >= 0 mark(z) -{ 2 }-> a__snd(a__head(mark(X964))) :|: z = 1 + (1 + X964), X964 >= 0 mark(z) -{ 2 }-> a__snd(a__fst(mark(X963))) :|: z = 1 + (1 + X963), X963 >= 0 mark(z) -{ 2 }-> a__snd(a__and(mark(X11047), X21047)) :|: X11047 >= 0, z = 1 + (1 + X11047 + X21047), X21047 >= 0 mark(z) -{ 2 }-> a__snd(a__afterNth(mark(X11046), mark(X21046))) :|: X11046 >= 0, X21046 >= 0, z = 1 + (1 + X11046 + X21046) mark(z) -{ 2 }-> a__snd(a__U12(mark(X11044), X21044)) :|: X21044 >= 0, z = 1 + (1 + X11044 + X21044), X11044 >= 0 mark(z) -{ 2 }-> a__snd(a__U11(mark(X11043), X21043, X3187, X4176)) :|: X4176 >= 0, X21043 >= 0, z = 1 + (1 + X11043 + X21043 + X3187 + X4176), X3187 >= 0, X11043 >= 0 mark(z) -{ 2 }-> a__snd(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__snd(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__snd(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__snd(1 + mark(X967)) :|: z = 1 + (1 + X967), X967 >= 0 mark(z) -{ 2 }-> a__snd(1 + mark(X11050) + mark(X21050)) :|: X21050 >= 0, z = 1 + (1 + X11050 + X21050), X11050 >= 0 mark(z) -{ 2 }-> a__snd(1 + mark(X11051) + X21051) :|: z = 1 + (1 + X11051 + X21051), X21051 >= 0, X11051 >= 0 mark(z) -{ 1 }-> a__sel(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__natsFrom(a__take(mark(X11085), mark(X21085))) :|: X11085 >= 0, z = 1 + (1 + X11085 + X21085), X21085 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__tail(mark(X990))) :|: z = 1 + (1 + X990), X990 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__splitAt(mark(X11081), mark(X21081))) :|: z = 1 + (1 + X11081 + X21081), X21081 >= 0, X11081 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__snd(mark(X986))) :|: X986 >= 0, z = 1 + (1 + X986) mark(z) -{ 2 }-> a__natsFrom(a__sel(mark(X11084), mark(X21084))) :|: X11084 >= 0, z = 1 + (1 + X11084 + X21084), X21084 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__natsFrom(mark(X989))) :|: z = 1 + (1 + X989), X989 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__head(mark(X988))) :|: z = 1 + (1 + X988), X988 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__fst(mark(X987))) :|: z = 1 + (1 + X987), X987 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__and(mark(X11083), X21083)) :|: z = 1 + (1 + X11083 + X21083), X21083 >= 0, X11083 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__afterNth(mark(X11082), mark(X21082))) :|: X21082 >= 0, z = 1 + (1 + X11082 + X21082), X11082 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__U12(mark(X11080), X21080)) :|: X11080 >= 0, X21080 >= 0, z = 1 + (1 + X11080 + X21080) mark(z) -{ 2 }-> a__natsFrom(a__U11(mark(X11079), X21079, X3191, X4180)) :|: X21079 >= 0, X3191 >= 0, z = 1 + (1 + X11079 + X21079 + X3191 + X4180), X4180 >= 0, X11079 >= 0 mark(z) -{ 2 }-> a__natsFrom(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__natsFrom(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__natsFrom(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__natsFrom(1 + mark(X991)) :|: X991 >= 0, z = 1 + (1 + X991) mark(z) -{ 2 }-> a__natsFrom(1 + mark(X11086) + mark(X21086)) :|: z = 1 + (1 + X11086 + X21086), X11086 >= 0, X21086 >= 0 mark(z) -{ 2 }-> a__natsFrom(1 + mark(X11087) + X21087) :|: X11087 >= 0, z = 1 + (1 + X11087 + X21087), X21087 >= 0 mark(z) -{ 2 }-> a__head(a__take(mark(X11076), mark(X21076))) :|: X11076 >= 0, z = 1 + (1 + X11076 + X21076), X21076 >= 0 mark(z) -{ 2 }-> a__head(a__tail(mark(X984))) :|: z = 1 + (1 + X984), X984 >= 0 mark(z) -{ 2 }-> a__head(a__splitAt(mark(X11072), mark(X21072))) :|: z = 1 + (1 + X11072 + X21072), X21072 >= 0, X11072 >= 0 mark(z) -{ 2 }-> a__head(a__snd(mark(X980))) :|: X980 >= 0, z = 1 + (1 + X980) mark(z) -{ 2 }-> a__head(a__sel(mark(X11075), mark(X21075))) :|: z = 1 + (1 + X11075 + X21075), X21075 >= 0, X11075 >= 0 mark(z) -{ 2 }-> a__head(a__natsFrom(mark(X983))) :|: z = 1 + (1 + X983), X983 >= 0 mark(z) -{ 2 }-> a__head(a__head(mark(X982))) :|: X982 >= 0, z = 1 + (1 + X982) mark(z) -{ 2 }-> a__head(a__fst(mark(X981))) :|: X981 >= 0, z = 1 + (1 + X981) mark(z) -{ 2 }-> a__head(a__and(mark(X11074), X21074)) :|: X11074 >= 0, z = 1 + (1 + X11074 + X21074), X21074 >= 0 mark(z) -{ 2 }-> a__head(a__afterNth(mark(X11073), mark(X21073))) :|: z = 1 + (1 + X11073 + X21073), X21073 >= 0, X11073 >= 0 mark(z) -{ 2 }-> a__head(a__U12(mark(X11071), X21071)) :|: X21071 >= 0, z = 1 + (1 + X11071 + X21071), X11071 >= 0 mark(z) -{ 2 }-> a__head(a__U11(mark(X11070), X21070, X3190, X4179)) :|: X4179 >= 0, X11070 >= 0, z = 1 + (1 + X11070 + X21070 + X3190 + X4179), X21070 >= 0, X3190 >= 0 mark(z) -{ 2 }-> a__head(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__head(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__head(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__head(1 + mark(X985)) :|: z = 1 + (1 + X985), X985 >= 0 mark(z) -{ 2 }-> a__head(1 + mark(X11077) + mark(X21077)) :|: X11077 >= 0, X21077 >= 0, z = 1 + (1 + X11077 + X21077) mark(z) -{ 2 }-> a__head(1 + mark(X11078) + X21078) :|: z = 1 + (1 + X11078 + X21078), X11078 >= 0, X21078 >= 0 mark(z) -{ 2 }-> a__fst(a__take(mark(X11067), mark(X21067))) :|: X11067 >= 0, X21067 >= 0, z = 1 + (1 + X11067 + X21067) mark(z) -{ 2 }-> a__fst(a__tail(mark(X978))) :|: z = 1 + (1 + X978), X978 >= 0 mark(z) -{ 2 }-> a__fst(a__splitAt(mark(X11063), mark(X21063))) :|: X11063 >= 0, z = 1 + (1 + X11063 + X21063), X21063 >= 0 mark(z) -{ 2 }-> a__fst(a__snd(mark(X974))) :|: z = 1 + (1 + X974), X974 >= 0 mark(z) -{ 2 }-> a__fst(a__sel(mark(X11066), mark(X21066))) :|: X11066 >= 0, z = 1 + (1 + X11066 + X21066), X21066 >= 0 mark(z) -{ 2 }-> a__fst(a__natsFrom(mark(X977))) :|: z = 1 + (1 + X977), X977 >= 0 mark(z) -{ 2 }-> a__fst(a__head(mark(X976))) :|: X976 >= 0, z = 1 + (1 + X976) mark(z) -{ 2 }-> a__fst(a__fst(mark(X975))) :|: z = 1 + (1 + X975), X975 >= 0 mark(z) -{ 2 }-> a__fst(a__and(mark(X11065), X21065)) :|: X21065 >= 0, z = 1 + (1 + X11065 + X21065), X11065 >= 0 mark(z) -{ 2 }-> a__fst(a__afterNth(mark(X11064), mark(X21064))) :|: X11064 >= 0, X21064 >= 0, z = 1 + (1 + X11064 + X21064) mark(z) -{ 2 }-> a__fst(a__U12(mark(X11062), X21062)) :|: z = 1 + (1 + X11062 + X21062), X21062 >= 0, X11062 >= 0 mark(z) -{ 2 }-> a__fst(a__U11(mark(X11061), X21061, X3189, X4178)) :|: X21061 >= 0, z = 1 + (1 + X11061 + X21061 + X3189 + X4178), X11061 >= 0, X4178 >= 0, X3189 >= 0 mark(z) -{ 2 }-> a__fst(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__fst(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__fst(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__fst(1 + mark(X979)) :|: X979 >= 0, z = 1 + (1 + X979) mark(z) -{ 2 }-> a__fst(1 + mark(X11068) + mark(X21068)) :|: X11068 >= 0, X21068 >= 0, z = 1 + (1 + X11068 + X21068) mark(z) -{ 2 }-> a__fst(1 + mark(X11069) + X21069) :|: X21069 >= 0, X11069 >= 0, z = 1 + (1 + X11069 + X21069) mark(z) -{ 2 }-> a__and(a__take(mark(X11058), mark(X21058)), X2) :|: z = 1 + (1 + X11058 + X21058) + X2, X21058 >= 0, X11058 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__tail(mark(X972)), X2) :|: X972 >= 0, z = 1 + (1 + X972) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__splitAt(mark(X11054), mark(X21054)), X2) :|: z = 1 + (1 + X11054 + X21054) + X2, X21054 >= 0, X11054 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__snd(mark(X968)), X2) :|: z = 1 + (1 + X968) + X2, X2 >= 0, X968 >= 0 mark(z) -{ 2 }-> a__and(a__sel(mark(X11057), mark(X21057)), X2) :|: X11057 >= 0, z = 1 + (1 + X11057 + X21057) + X2, X2 >= 0, X21057 >= 0 mark(z) -{ 2 }-> a__and(a__natsFrom(mark(X971)), X2) :|: X971 >= 0, z = 1 + (1 + X971) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__head(mark(X970)), X2) :|: X970 >= 0, X2 >= 0, z = 1 + (1 + X970) + X2 mark(z) -{ 2 }-> a__and(a__fst(mark(X969)), X2) :|: X969 >= 0, z = 1 + (1 + X969) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X11056), X21056), X2) :|: X11056 >= 0, z = 1 + (1 + X11056 + X21056) + X2, X2 >= 0, X21056 >= 0 mark(z) -{ 2 }-> a__and(a__afterNth(mark(X11055), mark(X21055)), X2) :|: X21055 >= 0, z = 1 + (1 + X11055 + X21055) + X2, X11055 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U12(mark(X11053), X21053), X2) :|: X11053 >= 0, z = 1 + (1 + X11053 + X21053) + X2, X21053 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X11052), X21052, X3188, X4177), X2) :|: X3188 >= 0, X21052 >= 0, X4177 >= 0, X2 >= 0, z = 1 + (1 + X11052 + X21052 + X3188 + X4177) + X2, X11052 >= 0 mark(z) -{ 2 }-> a__and(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X973), X2) :|: X973 >= 0, z = 1 + (1 + X973) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X11059) + mark(X21059), X2) :|: X21059 >= 0, X11059 >= 0, z = 1 + (1 + X11059 + X21059) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X11060) + X21060, X2) :|: X11060 >= 0, z = 1 + (1 + X11060 + X21060) + X2, X21060 >= 0, X2 >= 0 mark(z) -{ 1 }-> a__afterNth(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__U12(a__take(mark(X1698), mark(X2698)), X2) :|: X1698 >= 0, z = 1 + (1 + X1698 + X2698) + X2, X2698 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__tail(mark(X732)), X2) :|: X732 >= 0, z = 1 + (1 + X732) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__splitAt(mark(X1694), mark(X2694)), X2) :|: X2694 >= 0, z = 1 + (1 + X1694 + X2694) + X2, X2 >= 0, X1694 >= 0 mark(z) -{ 2 }-> a__U12(a__snd(mark(X728)), X2) :|: X728 >= 0, X2 >= 0, z = 1 + (1 + X728) + X2 mark(z) -{ 2 }-> a__U12(a__sel(mark(X1697), mark(X2697)), X2) :|: X1697 >= 0, z = 1 + (1 + X1697 + X2697) + X2, X2 >= 0, X2697 >= 0 mark(z) -{ 2 }-> a__U12(a__natsFrom(mark(X731)), X2) :|: z = 1 + (1 + X731) + X2, X2 >= 0, X731 >= 0 mark(z) -{ 2 }-> a__U12(a__head(mark(X730)), X2) :|: z = 1 + (1 + X730) + X2, X730 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__fst(mark(X729)), X2) :|: z = 1 + (1 + X729) + X2, X2 >= 0, X729 >= 0 mark(z) -{ 2 }-> a__U12(a__and(mark(X1696), X2696), X2) :|: z = 1 + (1 + X1696 + X2696) + X2, X1696 >= 0, X2 >= 0, X2696 >= 0 mark(z) -{ 2 }-> a__U12(a__afterNth(mark(X1695), mark(X2695)), X2) :|: z = 1 + (1 + X1695 + X2695) + X2, X2695 >= 0, X1695 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__U12(mark(X1693), X2693), X2) :|: X1693 >= 0, X2693 >= 0, z = 1 + (1 + X1693 + X2693) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__U11(mark(X1692), X2692, X3148, X4137), X2) :|: X2692 >= 0, X4137 >= 0, X1692 >= 0, X2 >= 0, z = 1 + (1 + X1692 + X2692 + X3148 + X4137) + X2, X3148 >= 0 mark(z) -{ 2 }-> a__U12(2, X2) :|: z = 1 + 2 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(1, X2) :|: z = 1 + 1 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(0, X2) :|: z = 1 + 0 + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(1 + mark(X733), X2) :|: X733 >= 0, X2 >= 0, z = 1 + (1 + X733) + X2 mark(z) -{ 2 }-> a__U12(1 + mark(X1699) + mark(X2699), X2) :|: X2699 >= 0, z = 1 + (1 + X1699 + X2699) + X2, X1699 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(1 + mark(X1700) + X2700, X2) :|: X2700 >= 0, X1700 >= 0, z = 1 + (1 + X1700 + X2700) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__take(mark(X1689), mark(X2689)), X2, X3, X4) :|: z = 1 + (1 + X1689 + X2689) + X2 + X3 + X4, X2689 >= 0, X3 >= 0, X1689 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__tail(mark(X726)), X2, X3, X4) :|: X726 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X726) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__splitAt(mark(X1685), mark(X2685)), X2, X3, X4) :|: X2685 >= 0, X3 >= 0, X1685 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X1685 + X2685) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__snd(mark(X722)), X2, X3, X4) :|: z = 1 + (1 + X722) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X722 >= 0 mark(z) -{ 2 }-> a__U11(a__sel(mark(X1688), mark(X2688)), X2, X3, X4) :|: X1688 >= 0, z = 1 + (1 + X1688 + X2688) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X2688 >= 0 mark(z) -{ 2 }-> a__U11(a__natsFrom(mark(X725)), X2, X3, X4) :|: z = 1 + (1 + X725) + X2 + X3 + X4, X725 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__head(mark(X724)), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X724) + X2 + X3 + X4, X724 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__fst(mark(X723)), X2, X3, X4) :|: X3 >= 0, X723 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X723) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__and(mark(X1687), X2687), X2, X3, X4) :|: X1687 >= 0, z = 1 + (1 + X1687 + X2687) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X2687 >= 0 mark(z) -{ 2 }-> a__U11(a__afterNth(mark(X1686), mark(X2686)), X2, X3, X4) :|: X1686 >= 0, X3 >= 0, z = 1 + (1 + X1686 + X2686) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X2686 >= 0 mark(z) -{ 2 }-> a__U11(a__U12(mark(X1684), X2684), X2, X3, X4) :|: z = 1 + (1 + X1684 + X2684) + X2 + X3 + X4, X2684 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1684 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X1683), X2683, X3147, X4136), X2, X3, X4) :|: X1683 >= 0, z = 1 + (1 + X1683 + X2683 + X3147 + X4136) + X2 + X3 + X4, X2683 >= 0, X3 >= 0, X4136 >= 0, X2 >= 0, X4 >= 0, X3147 >= 0 mark(z) -{ 2 }-> a__U11(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X727), X2, X3, X4) :|: z = 1 + (1 + X727) + X2 + X3 + X4, X3 >= 0, X727 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X1690) + mark(X2690), X2, X3, X4) :|: X1690 >= 0, X3 >= 0, z = 1 + (1 + X1690 + X2690) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X2690 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X1691) + X2691, X2, X3, X4) :|: X2691 >= 0, z = 1 + (1 + X1691 + X2691) + X2 + X3 + X4, X3 >= 0, X1691 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 + mark(X1) + mark(X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (15) SimplificationProof (BOTH BOUNDS(ID, ID)) Simplified the RNTS by moving equalities from the constraints into the right-hand sides. ---------------------------------------- (16) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z', z'', z1) -{ 1 }-> a__U12(a__splitAt(mark(z'), mark(z1)), z'') :|: z = 2, z'' >= 0, z1 >= 0, z' >= 0 a__U11(z, z', z'', z1) -{ 1 }-> 1 + z + z' + z'' + z1 :|: z >= 0, z'' >= 0, z' >= 0, z1 >= 0 a__U12(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__U12(z, z') -{ 1 }-> 1 + (1 + mark(z') + YS) + mark(ZS) :|: z = 1 + YS + ZS, YS >= 0, z' >= 0, ZS >= 0 a__afterNth(z, z') -{ 1 }-> a__snd(a__splitAt(mark(z), mark(z'))) :|: z' >= 0, z >= 0 a__afterNth(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__and(z, z') -{ 1 }-> mark(z') :|: z = 2, z' >= 0 a__and(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__fst(z) -{ 1 }-> mark(X) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__fst(z) -{ 1 }-> 1 + z :|: z >= 0 a__head(z) -{ 1 }-> mark(N) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__head(z) -{ 1 }-> 1 + z :|: z >= 0 a__natsFrom(z) -{ 1 }-> 1 + z :|: z >= 0 a__natsFrom(z) -{ 1 }-> 1 + mark(z) + (1 + (1 + z)) :|: z >= 0 a__sel(z, z') -{ 1 }-> a__head(a__afterNth(mark(z), mark(z'))) :|: z' >= 0, z >= 0 a__sel(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__snd(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__snd(z) -{ 1 }-> 1 + z :|: z >= 0 a__splitAt(z, z') -{ 1 }-> a__U11(2, z - 1, X, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0 a__splitAt(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 a__splitAt(z, z') -{ 1 }-> 1 + 1 + mark(z') :|: z = 0, z' >= 0 a__tail(z) -{ 1 }-> mark(XS) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__tail(z) -{ 1 }-> 1 + z :|: z >= 0 a__take(z, z') -{ 1 }-> a__fst(a__splitAt(mark(z), mark(z'))) :|: z' >= 0, z >= 0 a__take(z, z') -{ 1 }-> 1 + z + z' :|: z >= 0, z' >= 0 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__tail(a__take(mark(X11265), mark(X21265))) :|: X11265 >= 0, X21265 >= 0, z = 1 + (1 + X11265 + X21265) mark(z) -{ 2 }-> a__tail(a__tail(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(a__splitAt(mark(X11261), mark(X21261))) :|: X11261 >= 0, z = 1 + (1 + X11261 + X21261), X21261 >= 0 mark(z) -{ 2 }-> a__tail(a__snd(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(a__sel(mark(X11264), mark(X21264))) :|: X11264 >= 0, z = 1 + (1 + X11264 + X21264), X21264 >= 0 mark(z) -{ 2 }-> a__tail(a__natsFrom(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(a__head(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(a__fst(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(a__and(mark(X11263), X21263)) :|: z = 1 + (1 + X11263 + X21263), X21263 >= 0, X11263 >= 0 mark(z) -{ 2 }-> a__tail(a__afterNth(mark(X11262), mark(X21262))) :|: X21262 >= 0, X11262 >= 0, z = 1 + (1 + X11262 + X21262) mark(z) -{ 2 }-> a__tail(a__U12(mark(X11260), X21260)) :|: z = 1 + (1 + X11260 + X21260), X21260 >= 0, X11260 >= 0 mark(z) -{ 2 }-> a__tail(a__U11(mark(X11259), X21259, X3211, X4200)) :|: X11259 >= 0, X21259 >= 0, X3211 >= 0, X4200 >= 0, z = 1 + (1 + X11259 + X21259 + X3211 + X4200) mark(z) -{ 2 }-> a__tail(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__tail(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__tail(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__tail(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__tail(1 + mark(X11266) + mark(X21266)) :|: X21266 >= 0, X11266 >= 0, z = 1 + (1 + X11266 + X21266) mark(z) -{ 2 }-> a__tail(1 + mark(X11267) + X21267) :|: X21267 >= 0, X11267 >= 0, z = 1 + (1 + X11267 + X21267) mark(z) -{ 1 }-> a__splitAt(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__snd(a__take(mark(X11049), mark(X21049))) :|: X21049 >= 0, z = 1 + (1 + X11049 + X21049), X11049 >= 0 mark(z) -{ 2 }-> a__snd(a__tail(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(a__splitAt(mark(X11045), mark(X21045))) :|: X11045 >= 0, X21045 >= 0, z = 1 + (1 + X11045 + X21045) mark(z) -{ 2 }-> a__snd(a__snd(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(a__sel(mark(X11048), mark(X21048))) :|: X21048 >= 0, z = 1 + (1 + X11048 + X21048), X11048 >= 0 mark(z) -{ 2 }-> a__snd(a__natsFrom(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(a__head(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(a__fst(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(a__and(mark(X11047), X21047)) :|: X11047 >= 0, z = 1 + (1 + X11047 + X21047), X21047 >= 0 mark(z) -{ 2 }-> a__snd(a__afterNth(mark(X11046), mark(X21046))) :|: X11046 >= 0, X21046 >= 0, z = 1 + (1 + X11046 + X21046) mark(z) -{ 2 }-> a__snd(a__U12(mark(X11044), X21044)) :|: X21044 >= 0, z = 1 + (1 + X11044 + X21044), X11044 >= 0 mark(z) -{ 2 }-> a__snd(a__U11(mark(X11043), X21043, X3187, X4176)) :|: X4176 >= 0, X21043 >= 0, z = 1 + (1 + X11043 + X21043 + X3187 + X4176), X3187 >= 0, X11043 >= 0 mark(z) -{ 2 }-> a__snd(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__snd(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__snd(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__snd(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__snd(1 + mark(X11050) + mark(X21050)) :|: X21050 >= 0, z = 1 + (1 + X11050 + X21050), X11050 >= 0 mark(z) -{ 2 }-> a__snd(1 + mark(X11051) + X21051) :|: z = 1 + (1 + X11051 + X21051), X21051 >= 0, X11051 >= 0 mark(z) -{ 1 }-> a__sel(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__natsFrom(a__take(mark(X11085), mark(X21085))) :|: X11085 >= 0, z = 1 + (1 + X11085 + X21085), X21085 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__tail(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__splitAt(mark(X11081), mark(X21081))) :|: z = 1 + (1 + X11081 + X21081), X21081 >= 0, X11081 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__snd(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__sel(mark(X11084), mark(X21084))) :|: X11084 >= 0, z = 1 + (1 + X11084 + X21084), X21084 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__natsFrom(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__head(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__fst(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__and(mark(X11083), X21083)) :|: z = 1 + (1 + X11083 + X21083), X21083 >= 0, X11083 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__afterNth(mark(X11082), mark(X21082))) :|: X21082 >= 0, z = 1 + (1 + X11082 + X21082), X11082 >= 0 mark(z) -{ 2 }-> a__natsFrom(a__U12(mark(X11080), X21080)) :|: X11080 >= 0, X21080 >= 0, z = 1 + (1 + X11080 + X21080) mark(z) -{ 2 }-> a__natsFrom(a__U11(mark(X11079), X21079, X3191, X4180)) :|: X21079 >= 0, X3191 >= 0, z = 1 + (1 + X11079 + X21079 + X3191 + X4180), X4180 >= 0, X11079 >= 0 mark(z) -{ 2 }-> a__natsFrom(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__natsFrom(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__natsFrom(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__natsFrom(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__natsFrom(1 + mark(X11086) + mark(X21086)) :|: z = 1 + (1 + X11086 + X21086), X11086 >= 0, X21086 >= 0 mark(z) -{ 2 }-> a__natsFrom(1 + mark(X11087) + X21087) :|: X11087 >= 0, z = 1 + (1 + X11087 + X21087), X21087 >= 0 mark(z) -{ 2 }-> a__head(a__take(mark(X11076), mark(X21076))) :|: X11076 >= 0, z = 1 + (1 + X11076 + X21076), X21076 >= 0 mark(z) -{ 2 }-> a__head(a__tail(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(a__splitAt(mark(X11072), mark(X21072))) :|: z = 1 + (1 + X11072 + X21072), X21072 >= 0, X11072 >= 0 mark(z) -{ 2 }-> a__head(a__snd(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(a__sel(mark(X11075), mark(X21075))) :|: z = 1 + (1 + X11075 + X21075), X21075 >= 0, X11075 >= 0 mark(z) -{ 2 }-> a__head(a__natsFrom(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(a__head(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(a__fst(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(a__and(mark(X11074), X21074)) :|: X11074 >= 0, z = 1 + (1 + X11074 + X21074), X21074 >= 0 mark(z) -{ 2 }-> a__head(a__afterNth(mark(X11073), mark(X21073))) :|: z = 1 + (1 + X11073 + X21073), X21073 >= 0, X11073 >= 0 mark(z) -{ 2 }-> a__head(a__U12(mark(X11071), X21071)) :|: X21071 >= 0, z = 1 + (1 + X11071 + X21071), X11071 >= 0 mark(z) -{ 2 }-> a__head(a__U11(mark(X11070), X21070, X3190, X4179)) :|: X4179 >= 0, X11070 >= 0, z = 1 + (1 + X11070 + X21070 + X3190 + X4179), X21070 >= 0, X3190 >= 0 mark(z) -{ 2 }-> a__head(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__head(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__head(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__head(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__head(1 + mark(X11077) + mark(X21077)) :|: X11077 >= 0, X21077 >= 0, z = 1 + (1 + X11077 + X21077) mark(z) -{ 2 }-> a__head(1 + mark(X11078) + X21078) :|: z = 1 + (1 + X11078 + X21078), X11078 >= 0, X21078 >= 0 mark(z) -{ 2 }-> a__fst(a__take(mark(X11067), mark(X21067))) :|: X11067 >= 0, X21067 >= 0, z = 1 + (1 + X11067 + X21067) mark(z) -{ 2 }-> a__fst(a__tail(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(a__splitAt(mark(X11063), mark(X21063))) :|: X11063 >= 0, z = 1 + (1 + X11063 + X21063), X21063 >= 0 mark(z) -{ 2 }-> a__fst(a__snd(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(a__sel(mark(X11066), mark(X21066))) :|: X11066 >= 0, z = 1 + (1 + X11066 + X21066), X21066 >= 0 mark(z) -{ 2 }-> a__fst(a__natsFrom(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(a__head(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(a__fst(mark(z - 2))) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(a__and(mark(X11065), X21065)) :|: X21065 >= 0, z = 1 + (1 + X11065 + X21065), X11065 >= 0 mark(z) -{ 2 }-> a__fst(a__afterNth(mark(X11064), mark(X21064))) :|: X11064 >= 0, X21064 >= 0, z = 1 + (1 + X11064 + X21064) mark(z) -{ 2 }-> a__fst(a__U12(mark(X11062), X21062)) :|: z = 1 + (1 + X11062 + X21062), X21062 >= 0, X11062 >= 0 mark(z) -{ 2 }-> a__fst(a__U11(mark(X11061), X21061, X3189, X4178)) :|: X21061 >= 0, z = 1 + (1 + X11061 + X21061 + X3189 + X4178), X11061 >= 0, X4178 >= 0, X3189 >= 0 mark(z) -{ 2 }-> a__fst(2) :|: z = 1 + 2 mark(z) -{ 2 }-> a__fst(1) :|: z = 1 + 1 mark(z) -{ 2 }-> a__fst(0) :|: z = 1 + 0 mark(z) -{ 2 }-> a__fst(1 + mark(z - 2)) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__fst(1 + mark(X11068) + mark(X21068)) :|: X11068 >= 0, X21068 >= 0, z = 1 + (1 + X11068 + X21068) mark(z) -{ 2 }-> a__fst(1 + mark(X11069) + X21069) :|: X21069 >= 0, X11069 >= 0, z = 1 + (1 + X11069 + X21069) mark(z) -{ 2 }-> a__and(a__take(mark(X11058), mark(X21058)), X2) :|: z = 1 + (1 + X11058 + X21058) + X2, X21058 >= 0, X11058 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__tail(mark(X972)), X2) :|: X972 >= 0, z = 1 + (1 + X972) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__splitAt(mark(X11054), mark(X21054)), X2) :|: z = 1 + (1 + X11054 + X21054) + X2, X21054 >= 0, X11054 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__snd(mark(X968)), X2) :|: z = 1 + (1 + X968) + X2, X2 >= 0, X968 >= 0 mark(z) -{ 2 }-> a__and(a__sel(mark(X11057), mark(X21057)), X2) :|: X11057 >= 0, z = 1 + (1 + X11057 + X21057) + X2, X2 >= 0, X21057 >= 0 mark(z) -{ 2 }-> a__and(a__natsFrom(mark(X971)), X2) :|: X971 >= 0, z = 1 + (1 + X971) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__head(mark(X970)), X2) :|: X970 >= 0, X2 >= 0, z = 1 + (1 + X970) + X2 mark(z) -{ 2 }-> a__and(a__fst(mark(X969)), X2) :|: X969 >= 0, z = 1 + (1 + X969) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(a__and(mark(X11056), X21056), X2) :|: X11056 >= 0, z = 1 + (1 + X11056 + X21056) + X2, X2 >= 0, X21056 >= 0 mark(z) -{ 2 }-> a__and(a__afterNth(mark(X11055), mark(X21055)), X2) :|: X21055 >= 0, z = 1 + (1 + X11055 + X21055) + X2, X11055 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U12(mark(X11053), X21053), X2) :|: X11053 >= 0, z = 1 + (1 + X11053 + X21053) + X2, X21053 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__and(a__U11(mark(X11052), X21052, X3188, X4177), X2) :|: X3188 >= 0, X21052 >= 0, X4177 >= 0, X2 >= 0, z = 1 + (1 + X11052 + X21052 + X3188 + X4177) + X2, X11052 >= 0 mark(z) -{ 2 }-> a__and(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__and(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__and(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X973), X2) :|: X973 >= 0, z = 1 + (1 + X973) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X11059) + mark(X21059), X2) :|: X21059 >= 0, X11059 >= 0, z = 1 + (1 + X11059 + X21059) + X2, X2 >= 0 mark(z) -{ 2 }-> a__and(1 + mark(X11060) + X21060, X2) :|: X11060 >= 0, z = 1 + (1 + X11060 + X21060) + X2, X21060 >= 0, X2 >= 0 mark(z) -{ 1 }-> a__afterNth(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 2 }-> a__U12(a__take(mark(X1698), mark(X2698)), X2) :|: X1698 >= 0, z = 1 + (1 + X1698 + X2698) + X2, X2698 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__tail(mark(X732)), X2) :|: X732 >= 0, z = 1 + (1 + X732) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__splitAt(mark(X1694), mark(X2694)), X2) :|: X2694 >= 0, z = 1 + (1 + X1694 + X2694) + X2, X2 >= 0, X1694 >= 0 mark(z) -{ 2 }-> a__U12(a__snd(mark(X728)), X2) :|: X728 >= 0, X2 >= 0, z = 1 + (1 + X728) + X2 mark(z) -{ 2 }-> a__U12(a__sel(mark(X1697), mark(X2697)), X2) :|: X1697 >= 0, z = 1 + (1 + X1697 + X2697) + X2, X2 >= 0, X2697 >= 0 mark(z) -{ 2 }-> a__U12(a__natsFrom(mark(X731)), X2) :|: z = 1 + (1 + X731) + X2, X2 >= 0, X731 >= 0 mark(z) -{ 2 }-> a__U12(a__head(mark(X730)), X2) :|: z = 1 + (1 + X730) + X2, X730 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__fst(mark(X729)), X2) :|: z = 1 + (1 + X729) + X2, X2 >= 0, X729 >= 0 mark(z) -{ 2 }-> a__U12(a__and(mark(X1696), X2696), X2) :|: z = 1 + (1 + X1696 + X2696) + X2, X1696 >= 0, X2 >= 0, X2696 >= 0 mark(z) -{ 2 }-> a__U12(a__afterNth(mark(X1695), mark(X2695)), X2) :|: z = 1 + (1 + X1695 + X2695) + X2, X2695 >= 0, X1695 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__U12(mark(X1693), X2693), X2) :|: X1693 >= 0, X2693 >= 0, z = 1 + (1 + X1693 + X2693) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U12(a__U11(mark(X1692), X2692, X3148, X4137), X2) :|: X2692 >= 0, X4137 >= 0, X1692 >= 0, X2 >= 0, z = 1 + (1 + X1692 + X2692 + X3148 + X4137) + X2, X3148 >= 0 mark(z) -{ 2 }-> a__U12(2, z - 3) :|: z - 3 >= 0 mark(z) -{ 2 }-> a__U12(1, z - 2) :|: z - 2 >= 0 mark(z) -{ 2 }-> a__U12(0, z - 1) :|: z - 1 >= 0 mark(z) -{ 2 }-> a__U12(1 + mark(X733), X2) :|: X733 >= 0, X2 >= 0, z = 1 + (1 + X733) + X2 mark(z) -{ 2 }-> a__U12(1 + mark(X1699) + mark(X2699), X2) :|: X2699 >= 0, z = 1 + (1 + X1699 + X2699) + X2, X1699 >= 0, X2 >= 0 mark(z) -{ 2 }-> a__U12(1 + mark(X1700) + X2700, X2) :|: X2700 >= 0, X1700 >= 0, z = 1 + (1 + X1700 + X2700) + X2, X2 >= 0 mark(z) -{ 2 }-> a__U11(a__take(mark(X1689), mark(X2689)), X2, X3, X4) :|: z = 1 + (1 + X1689 + X2689) + X2 + X3 + X4, X2689 >= 0, X3 >= 0, X1689 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__tail(mark(X726)), X2, X3, X4) :|: X726 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X726) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__splitAt(mark(X1685), mark(X2685)), X2, X3, X4) :|: X2685 >= 0, X3 >= 0, X1685 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X1685 + X2685) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__snd(mark(X722)), X2, X3, X4) :|: z = 1 + (1 + X722) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X722 >= 0 mark(z) -{ 2 }-> a__U11(a__sel(mark(X1688), mark(X2688)), X2, X3, X4) :|: X1688 >= 0, z = 1 + (1 + X1688 + X2688) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X2688 >= 0 mark(z) -{ 2 }-> a__U11(a__natsFrom(mark(X725)), X2, X3, X4) :|: z = 1 + (1 + X725) + X2 + X3 + X4, X725 >= 0, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__head(mark(X724)), X2, X3, X4) :|: X3 >= 0, z = 1 + (1 + X724) + X2 + X3 + X4, X724 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(a__fst(mark(X723)), X2, X3, X4) :|: X3 >= 0, X723 >= 0, X2 >= 0, X4 >= 0, z = 1 + (1 + X723) + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(a__and(mark(X1687), X2687), X2, X3, X4) :|: X1687 >= 0, z = 1 + (1 + X1687 + X2687) + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0, X2687 >= 0 mark(z) -{ 2 }-> a__U11(a__afterNth(mark(X1686), mark(X2686)), X2, X3, X4) :|: X1686 >= 0, X3 >= 0, z = 1 + (1 + X1686 + X2686) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X2686 >= 0 mark(z) -{ 2 }-> a__U11(a__U12(mark(X1684), X2684), X2, X3, X4) :|: z = 1 + (1 + X1684 + X2684) + X2 + X3 + X4, X2684 >= 0, X3 >= 0, X2 >= 0, X4 >= 0, X1684 >= 0 mark(z) -{ 2 }-> a__U11(a__U11(mark(X1683), X2683, X3147, X4136), X2, X3, X4) :|: X1683 >= 0, z = 1 + (1 + X1683 + X2683 + X3147 + X4136) + X2 + X3 + X4, X2683 >= 0, X3 >= 0, X4136 >= 0, X2 >= 0, X4 >= 0, X3147 >= 0 mark(z) -{ 2 }-> a__U11(2, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 2 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(1, X2, X3, X4) :|: X3 >= 0, X2 >= 0, X4 >= 0, z = 1 + 1 + X2 + X3 + X4 mark(z) -{ 2 }-> a__U11(0, X2, X3, X4) :|: X3 >= 0, z = 1 + 0 + X2 + X3 + X4, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X727), X2, X3, X4) :|: z = 1 + (1 + X727) + X2 + X3 + X4, X3 >= 0, X727 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X1690) + mark(X2690), X2, X3, X4) :|: X1690 >= 0, X3 >= 0, z = 1 + (1 + X1690 + X2690) + X2 + X3 + X4, X2 >= 0, X4 >= 0, X2690 >= 0 mark(z) -{ 2 }-> a__U11(1 + mark(X1691) + X2691, X2, X3, X4) :|: X2691 >= 0, z = 1 + (1 + X1691 + X2691) + X2 + X3 + X4, X3 >= 0, X1691 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(z - 1) :|: z - 1 >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 + mark(X1) + mark(X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 ---------------------------------------- (17) CompletionProof (UPPER BOUND(ID)) The TRS is a completely defined constructor system, as every type has a constant constructor and the following rules were added: none And the following fresh constants: none ---------------------------------------- (18) Obligation: Runtime Complexity Weighted TRS where all functions are completely defined. The underlying TRS is: Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules: a__U11(tt, N, X, XS) -> a__U12(a__splitAt(mark(N), mark(XS)), X) [1] a__U12(pair(YS, ZS), X) -> pair(cons(mark(X), YS), mark(ZS)) [1] a__afterNth(N, XS) -> a__snd(a__splitAt(mark(N), mark(XS))) [1] a__and(tt, X) -> mark(X) [1] a__fst(pair(X, Y)) -> mark(X) [1] a__head(cons(N, XS)) -> mark(N) [1] a__natsFrom(N) -> cons(mark(N), natsFrom(s(N))) [1] a__sel(N, XS) -> a__head(a__afterNth(mark(N), mark(XS))) [1] a__snd(pair(X, Y)) -> mark(Y) [1] a__splitAt(0, XS) -> pair(nil, mark(XS)) [1] a__splitAt(s(N), cons(X, XS)) -> a__U11(tt, N, X, XS) [1] a__tail(cons(N, XS)) -> mark(XS) [1] a__take(N, XS) -> a__fst(a__splitAt(mark(N), mark(XS))) [1] mark(U11(X1, X2, X3, X4)) -> a__U11(mark(X1), X2, X3, X4) [1] mark(U12(X1, X2)) -> a__U12(mark(X1), X2) [1] mark(splitAt(X1, X2)) -> a__splitAt(mark(X1), mark(X2)) [1] mark(afterNth(X1, X2)) -> a__afterNth(mark(X1), mark(X2)) [1] mark(snd(X)) -> a__snd(mark(X)) [1] mark(and(X1, X2)) -> a__and(mark(X1), X2) [1] mark(fst(X)) -> a__fst(mark(X)) [1] mark(head(X)) -> a__head(mark(X)) [1] mark(natsFrom(X)) -> a__natsFrom(mark(X)) [1] mark(sel(X1, X2)) -> a__sel(mark(X1), mark(X2)) [1] mark(tail(X)) -> a__tail(mark(X)) [1] mark(take(X1, X2)) -> a__take(mark(X1), mark(X2)) [1] mark(tt) -> tt [1] mark(pair(X1, X2)) -> pair(mark(X1), mark(X2)) [1] mark(cons(X1, X2)) -> cons(mark(X1), X2) [1] mark(s(X)) -> s(mark(X)) [1] mark(0) -> 0 [1] mark(nil) -> nil [1] a__U11(X1, X2, X3, X4) -> U11(X1, X2, X3, X4) [1] a__U12(X1, X2) -> U12(X1, X2) [1] a__splitAt(X1, X2) -> splitAt(X1, X2) [1] a__afterNth(X1, X2) -> afterNth(X1, X2) [1] a__snd(X) -> snd(X) [1] a__and(X1, X2) -> and(X1, X2) [1] a__fst(X) -> fst(X) [1] a__head(X) -> head(X) [1] a__natsFrom(X) -> natsFrom(X) [1] a__sel(X1, X2) -> sel(X1, X2) [1] a__tail(X) -> tail(X) [1] a__take(X1, X2) -> take(X1, X2) [1] The TRS has the following type information: a__U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take mark :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take pair :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take cons :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take natsFrom :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take s :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take 0 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take nil :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take a__take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U11 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take U12 :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take splitAt :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take afterNth :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take snd :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take and :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take fst :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take head :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take sel :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take tail :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take take :: tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take -> tt:pair:cons:s:natsFrom:0:nil:U11:U12:splitAt:afterNth:snd:and:fst:head:sel:tail:take Rewrite Strategy: INNERMOST ---------------------------------------- (19) CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID)) Transformed the TRS into an over-approximating RNTS by (improved) Size Abstraction. The constant constructors are abstracted as follows: tt => 2 0 => 0 nil => 1 ---------------------------------------- (20) Obligation: Complexity RNTS consisting of the following rules: a__U11(z, z', z'', z1) -{ 1 }-> a__U12(a__splitAt(mark(N), mark(XS)), X) :|: z = 2, z'' = X, X >= 0, z' = N, z1 = XS, XS >= 0, N >= 0 a__U11(z, z', z'', z1) -{ 1 }-> 1 + X1 + X2 + X3 + X4 :|: X1 >= 0, z1 = X4, X3 >= 0, X2 >= 0, X4 >= 0, z = X1, z' = X2, z'' = X3 a__U12(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__U12(z, z') -{ 1 }-> 1 + (1 + mark(X) + YS) + mark(ZS) :|: z' = X, z = 1 + YS + ZS, YS >= 0, X >= 0, ZS >= 0 a__afterNth(z, z') -{ 1 }-> a__snd(a__splitAt(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__afterNth(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__and(z, z') -{ 1 }-> mark(X) :|: z = 2, z' = X, X >= 0 a__and(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__fst(z) -{ 1 }-> mark(X) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__fst(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__head(z) -{ 1 }-> mark(N) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__head(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__natsFrom(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__natsFrom(z) -{ 1 }-> 1 + mark(N) + (1 + (1 + N)) :|: z = N, N >= 0 a__sel(z, z') -{ 1 }-> a__head(a__afterNth(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__sel(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__snd(z) -{ 1 }-> mark(Y) :|: Y >= 0, z = 1 + X + Y, X >= 0 a__snd(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__splitAt(z, z') -{ 1 }-> a__U11(2, N, X, XS) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0 a__splitAt(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 a__splitAt(z, z') -{ 1 }-> 1 + 1 + mark(XS) :|: z' = XS, z = 0, XS >= 0 a__tail(z) -{ 1 }-> mark(XS) :|: z = 1 + N + XS, XS >= 0, N >= 0 a__tail(z) -{ 1 }-> 1 + X :|: X >= 0, z = X a__take(z, z') -{ 1 }-> a__fst(a__splitAt(mark(N), mark(XS))) :|: z' = XS, z = N, XS >= 0, N >= 0 a__take(z, z') -{ 1 }-> 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2 mark(z) -{ 1 }-> a__take(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__tail(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__splitAt(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__snd(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__sel(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__natsFrom(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__head(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__fst(mark(X)) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> a__and(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__afterNth(mark(X1), mark(X2)) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__U12(mark(X1), X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> a__U11(mark(X1), X2, X3, X4) :|: X1 >= 0, z = 1 + X1 + X2 + X3 + X4, X3 >= 0, X2 >= 0, X4 >= 0 mark(z) -{ 1 }-> 2 :|: z = 2 mark(z) -{ 1 }-> 1 :|: z = 1 mark(z) -{ 1 }-> 0 :|: z = 0 mark(z) -{ 1 }-> 1 + mark(X) :|: z = 1 + X, X >= 0 mark(z) -{ 1 }-> 1 + mark(X1) + X2 :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 mark(z) -{ 1 }-> 1 + mark(X1) + mark(X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2 Only complete derivations are relevant for the runtime complexity. ---------------------------------------- (21) CpxTrsToCdtProof (UPPER BOUND(ID)) Converted Cpx (relative) TRS with rewrite strategy PARALLEL_INNERMOST to CDT ---------------------------------------- (22) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U11(z0, z1, z2, z3) -> c2 A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__U12(z0, z1) -> c5 A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AFTERNTH(z0, z1) -> c8 A__AND(tt, z0) -> c9(MARK(z0)) A__AND(z0, z1) -> c10 A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__FST(z0) -> c12 A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__HEAD(z0) -> c14 A__NATSFROM(z0) -> c15(MARK(z0)) A__NATSFROM(z0) -> c16 A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SEL(z0, z1) -> c19 A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SND(z0) -> c21 A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__SPLITAT(z0, z1) -> c24 A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAIL(z0) -> c26 A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__TAKE(z0, z1) -> c29 MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c46 MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) MARK(0) -> c51 MARK(nil) -> c52 S tuples: A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U11(z0, z1, z2, z3) -> c2 A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__U12(z0, z1) -> c5 A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AFTERNTH(z0, z1) -> c8 A__AND(tt, z0) -> c9(MARK(z0)) A__AND(z0, z1) -> c10 A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__FST(z0) -> c12 A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__HEAD(z0) -> c14 A__NATSFROM(z0) -> c15(MARK(z0)) A__NATSFROM(z0) -> c16 A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SEL(z0, z1) -> c19 A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SND(z0) -> c21 A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__SPLITAT(z0, z1) -> c24 A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAIL(z0) -> c26 A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__TAKE(z0, z1) -> c29 MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(tt) -> c46 MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) MARK(0) -> c51 MARK(nil) -> c52 K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_4, A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1 Compound Symbols: c_3, c1_3, c2, c3_1, c4_1, c5, c6_3, c7_3, c8, c9_1, c10, c11_1, c12, c13_1, c14, c15_1, c16, c17_3, c18_3, c19, c20_1, c21, c22_1, c23_1, c24, c25_1, c26, c27_3, c28_3, c29, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c46, c47_1, c48_1, c49_1, c50_1, c51, c52 ---------------------------------------- (23) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 15 trailing nodes: A__TAKE(z0, z1) -> c29 MARK(nil) -> c52 MARK(0) -> c51 A__U12(z0, z1) -> c5 A__SND(z0) -> c21 A__TAIL(z0) -> c26 A__SPLITAT(z0, z1) -> c24 A__AND(z0, z1) -> c10 A__U11(z0, z1, z2, z3) -> c2 A__NATSFROM(z0) -> c16 A__FST(z0) -> c12 A__AFTERNTH(z0, z1) -> c8 MARK(tt) -> c46 A__SEL(z0, z1) -> c19 A__HEAD(z0) -> c14 ---------------------------------------- (24) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) S tuples: A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_4, A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1 Compound Symbols: c_3, c1_3, c3_1, c4_1, c6_3, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1 ---------------------------------------- (25) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, z0, z1, z2) -> c(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z0)) by A__U11(tt, x0, x1, x2) -> c(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(0)) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(nil)) ---------------------------------------- (26) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, x2) -> c(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(0)) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(nil)) S tuples: A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, x2) -> c(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(0)) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_4, A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1 Compound Symbols: c1_3, c3_1, c4_1, c6_3, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3 ---------------------------------------- (27) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (28) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) S tuples: A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U11_4, A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1 Compound Symbols: c1_3, c3_1, c4_1, c6_3, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2 ---------------------------------------- (29) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, z0, z1, z2) -> c1(A__U12(a__splitAt(mark(z0), mark(z2)), z1), A__SPLITAT(mark(z0), mark(z2)), MARK(z2)) by A__U11(tt, x0, x1, x2) -> c1(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) ---------------------------------------- (30) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, x2) -> c1(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, x2) -> c1(A__U12(splitAt(mark(x0), mark(x2)), x1), A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4 Compound Symbols: c3_1, c4_1, c6_3, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3 ---------------------------------------- (31) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (32) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4 Compound Symbols: c3_1, c4_1, c6_3, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2 ---------------------------------------- (33) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__AFTERNTH(z0, z1) -> c6(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) by A__AFTERNTH(x0, x1) -> c6(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) ---------------------------------------- (34) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, x1) -> c6(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, x1) -> c6(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4 Compound Symbols: c3_1, c4_1, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3 ---------------------------------------- (35) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (36) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AFTERNTH_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4 Compound Symbols: c3_1, c4_1, c7_3, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2 ---------------------------------------- (37) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__AFTERNTH(z0, z1) -> c7(A__SND(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) by A__AFTERNTH(x0, x1) -> c7(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) ---------------------------------------- (38) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, x1) -> c7(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, x1) -> c7(A__SND(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3 ---------------------------------------- (39) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (40) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c17_3, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2 ---------------------------------------- (41) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SEL(z0, z1) -> c17(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) by A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, x1) -> c17(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(tt)) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(0)) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(nil)) ---------------------------------------- (42) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, x1) -> c17(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(tt)) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(0)) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, x1) -> c17(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(tt)) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(0)) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3 ---------------------------------------- (43) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (44) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SEL_2, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c18_3, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2 ---------------------------------------- (45) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__SEL(z0, z1) -> c18(A__HEAD(a__afterNth(mark(z0), mark(z1))), A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) by A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(tt)) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(0)) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(nil)) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) ---------------------------------------- (46) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(tt)) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(0)) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(nil)) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__HEAD(afterNth(mark(x0), mark(x1))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(tt)) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(0)) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(nil)) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3 ---------------------------------------- (47) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (48) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c27_3, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2 ---------------------------------------- (49) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(z0, z1) -> c27(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) by A__TAKE(x0, x1) -> c27(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) ---------------------------------------- (50) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, x1) -> c27(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, x1) -> c27(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(tt)) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(0)) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3 ---------------------------------------- (51) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (52) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, A__TAKE_2, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c28_3, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2 ---------------------------------------- (53) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__TAKE(z0, z1) -> c28(A__FST(a__splitAt(mark(z0), mark(z1))), A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) by A__TAKE(x0, x1) -> c28(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) ---------------------------------------- (54) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, x1) -> c28(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, x1) -> c28(A__FST(splitAt(mark(x0), mark(x1))), A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(tt)) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(0)) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(nil)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3 ---------------------------------------- (55) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (56) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c30_2, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2 ---------------------------------------- (57) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U11(z0, z1, z2, z3)) -> c30(A__U11(mark(z0), z1, z2, z3), MARK(z0)) by MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3), MARK(tt)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(A__U11(pair(mark(z0), mark(z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(A__U11(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(A__U11(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U11(0, x1, x2, x3)) -> c30(A__U11(0, x1, x2, x3), MARK(0)) MARK(U11(nil, x1, x2, x3)) -> c30(A__U11(nil, x1, x2, x3), MARK(nil)) ---------------------------------------- (58) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3), MARK(tt)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(A__U11(pair(mark(z0), mark(z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(A__U11(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(A__U11(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U11(0, x1, x2, x3)) -> c30(A__U11(0, x1, x2, x3), MARK(0)) MARK(U11(nil, x1, x2, x3)) -> c30(A__U11(nil, x1, x2, x3), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3), MARK(tt)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(A__U11(pair(mark(z0), mark(z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(A__U11(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(A__U11(s(mark(z0)), x1, x2, x3), MARK(s(z0))) MARK(U11(0, x1, x2, x3)) -> c30(A__U11(0, x1, x2, x3), MARK(0)) MARK(U11(nil, x1, x2, x3)) -> c30(A__U11(nil, x1, x2, x3), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2 ---------------------------------------- (59) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(U11(nil, x1, x2, x3)) -> c30(A__U11(nil, x1, x2, x3), MARK(nil)) MARK(U11(0, x1, x2, x3)) -> c30(A__U11(0, x1, x2, x3), MARK(0)) ---------------------------------------- (60) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3), MARK(tt)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(A__U11(pair(mark(z0), mark(z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(A__U11(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(A__U11(s(mark(z0)), x1, x2, x3), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3), MARK(tt)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(A__U11(pair(mark(z0), mark(z1)), x1, x2, x3), MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(A__U11(cons(mark(z0), z1), x1, x2, x3), MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(A__U11(s(mark(z0)), x1, x2, x3), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2 ---------------------------------------- (61) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (62) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c31_2, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1 ---------------------------------------- (63) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(U12(z0, z1)) -> c31(A__U12(mark(z0), z1), MARK(z0)) by MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(tt, x1)) -> c31(A__U12(tt, x1), MARK(tt)) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(A__U12(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(A__U12(s(mark(z0)), x1), MARK(s(z0))) MARK(U12(0, x1)) -> c31(A__U12(0, x1), MARK(0)) MARK(U12(nil, x1)) -> c31(A__U12(nil, x1), MARK(nil)) ---------------------------------------- (64) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(tt, x1)) -> c31(A__U12(tt, x1), MARK(tt)) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(A__U12(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(A__U12(s(mark(z0)), x1), MARK(s(z0))) MARK(U12(0, x1)) -> c31(A__U12(0, x1), MARK(0)) MARK(U12(nil, x1)) -> c31(A__U12(nil, x1), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(tt, x1)) -> c31(A__U12(tt, x1), MARK(tt)) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(A__U12(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(A__U12(s(mark(z0)), x1), MARK(s(z0))) MARK(U12(0, x1)) -> c31(A__U12(0, x1), MARK(0)) MARK(U12(nil, x1)) -> c31(A__U12(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2 ---------------------------------------- (65) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(U12(0, x1)) -> c31(A__U12(0, x1), MARK(0)) MARK(U12(nil, x1)) -> c31(A__U12(nil, x1), MARK(nil)) MARK(U12(tt, x1)) -> c31(A__U12(tt, x1), MARK(tt)) ---------------------------------------- (66) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(A__U12(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(A__U12(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(A__U12(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(A__U12(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2 ---------------------------------------- (67) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (68) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c32_2, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1 ---------------------------------------- (69) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(splitAt(z0, z1)) -> c32(A__SPLITAT(mark(z0), mark(z1)), MARK(z0)) by MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(tt, x1)) -> c32(A__SPLITAT(tt, mark(x1)), MARK(tt)) MARK(splitAt(pair(z0, z1), x1)) -> c32(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1)), MARK(0)) MARK(splitAt(nil, x1)) -> c32(A__SPLITAT(nil, mark(x1)), MARK(nil)) ---------------------------------------- (70) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(tt, x1)) -> c32(A__SPLITAT(tt, mark(x1)), MARK(tt)) MARK(splitAt(pair(z0, z1), x1)) -> c32(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1)), MARK(0)) MARK(splitAt(nil, x1)) -> c32(A__SPLITAT(nil, mark(x1)), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(tt, x1)) -> c32(A__SPLITAT(tt, mark(x1)), MARK(tt)) MARK(splitAt(pair(z0, z1), x1)) -> c32(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1)), MARK(0)) MARK(splitAt(nil, x1)) -> c32(A__SPLITAT(nil, mark(x1)), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2 ---------------------------------------- (71) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(splitAt(nil, x1)) -> c32(A__SPLITAT(nil, mark(x1)), MARK(nil)) MARK(splitAt(tt, x1)) -> c32(A__SPLITAT(tt, mark(x1)), MARK(tt)) ---------------------------------------- (72) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(pair(z0, z1), x1)) -> c32(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1)), MARK(0)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(pair(z0, z1), x1)) -> c32(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(cons(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1)), MARK(0)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2 ---------------------------------------- (73) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing tuple parts ---------------------------------------- (74) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c33_2, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1 ---------------------------------------- (75) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(splitAt(z0, z1)) -> c33(A__SPLITAT(mark(z0), mark(z1)), MARK(z1)) by MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt), MARK(tt)) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0), MARK(0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil), MARK(nil)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tt, x1)) -> c33(A__SPLITAT(tt, mark(x1)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(nil, x1)) -> c33(A__SPLITAT(nil, mark(x1)), MARK(x1)) ---------------------------------------- (76) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt), MARK(tt)) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0), MARK(0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil), MARK(nil)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tt, x1)) -> c33(A__SPLITAT(tt, mark(x1)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(nil, x1)) -> c33(A__SPLITAT(nil, mark(x1)), MARK(x1)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt), MARK(tt)) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0), MARK(0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil), MARK(nil)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tt, x1)) -> c33(A__SPLITAT(tt, mark(x1)), MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(A__SPLITAT(pair(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(A__SPLITAT(cons(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(nil, x1)) -> c33(A__SPLITAT(nil, mark(x1)), MARK(x1)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2 ---------------------------------------- (77) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 7 trailing tuple parts ---------------------------------------- (78) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c36_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1 ---------------------------------------- (79) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(snd(z0)) -> c36(A__SND(mark(z0)), MARK(z0)) by MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(tt)) -> c36(A__SND(tt), MARK(tt)) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(A__SND(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(A__SND(s(mark(z0))), MARK(s(z0))) MARK(snd(0)) -> c36(A__SND(0), MARK(0)) MARK(snd(nil)) -> c36(A__SND(nil), MARK(nil)) ---------------------------------------- (80) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(tt)) -> c36(A__SND(tt), MARK(tt)) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(A__SND(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(A__SND(s(mark(z0))), MARK(s(z0))) MARK(snd(0)) -> c36(A__SND(0), MARK(0)) MARK(snd(nil)) -> c36(A__SND(nil), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(tt)) -> c36(A__SND(tt), MARK(tt)) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(A__SND(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(A__SND(s(mark(z0))), MARK(s(z0))) MARK(snd(0)) -> c36(A__SND(0), MARK(0)) MARK(snd(nil)) -> c36(A__SND(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2 ---------------------------------------- (81) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(snd(nil)) -> c36(A__SND(nil), MARK(nil)) MARK(snd(0)) -> c36(A__SND(0), MARK(0)) MARK(snd(tt)) -> c36(A__SND(tt), MARK(tt)) ---------------------------------------- (82) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(A__SND(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(A__SND(s(mark(z0))), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(A__SND(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(A__SND(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2 ---------------------------------------- (83) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (84) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c37_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1 ---------------------------------------- (85) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(and(z0, z1)) -> c37(A__AND(mark(z0), z1), MARK(z0)) by MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1), MARK(tt)) MARK(and(pair(z0, z1), x1)) -> c37(A__AND(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(0, x1)) -> c37(A__AND(0, x1), MARK(0)) MARK(and(nil, x1)) -> c37(A__AND(nil, x1), MARK(nil)) ---------------------------------------- (86) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1), MARK(tt)) MARK(and(pair(z0, z1), x1)) -> c37(A__AND(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(0, x1)) -> c37(A__AND(0, x1), MARK(0)) MARK(and(nil, x1)) -> c37(A__AND(nil, x1), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1), MARK(tt)) MARK(and(pair(z0, z1), x1)) -> c37(A__AND(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(A__AND(s(mark(z0)), x1), MARK(s(z0))) MARK(and(0, x1)) -> c37(A__AND(0, x1), MARK(0)) MARK(and(nil, x1)) -> c37(A__AND(nil, x1), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2 ---------------------------------------- (87) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing nodes: MARK(and(nil, x1)) -> c37(A__AND(nil, x1), MARK(nil)) MARK(and(0, x1)) -> c37(A__AND(0, x1), MARK(0)) ---------------------------------------- (88) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1), MARK(tt)) MARK(and(pair(z0, z1), x1)) -> c37(A__AND(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(A__AND(s(mark(z0)), x1), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1), MARK(tt)) MARK(and(pair(z0, z1), x1)) -> c37(A__AND(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(A__AND(cons(mark(z0), z1), x1), MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(A__AND(s(mark(z0)), x1), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2 ---------------------------------------- (89) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (90) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c38_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1 ---------------------------------------- (91) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(fst(z0)) -> c38(A__FST(mark(z0)), MARK(z0)) by MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(tt)) -> c38(A__FST(tt), MARK(tt)) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(A__FST(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(A__FST(s(mark(z0))), MARK(s(z0))) MARK(fst(0)) -> c38(A__FST(0), MARK(0)) MARK(fst(nil)) -> c38(A__FST(nil), MARK(nil)) ---------------------------------------- (92) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(tt)) -> c38(A__FST(tt), MARK(tt)) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(A__FST(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(A__FST(s(mark(z0))), MARK(s(z0))) MARK(fst(0)) -> c38(A__FST(0), MARK(0)) MARK(fst(nil)) -> c38(A__FST(nil), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(tt)) -> c38(A__FST(tt), MARK(tt)) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(A__FST(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(A__FST(s(mark(z0))), MARK(s(z0))) MARK(fst(0)) -> c38(A__FST(0), MARK(0)) MARK(fst(nil)) -> c38(A__FST(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2 ---------------------------------------- (93) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(fst(0)) -> c38(A__FST(0), MARK(0)) MARK(fst(tt)) -> c38(A__FST(tt), MARK(tt)) MARK(fst(nil)) -> c38(A__FST(nil), MARK(nil)) ---------------------------------------- (94) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(A__FST(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(A__FST(s(mark(z0))), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(A__FST(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(A__FST(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2 ---------------------------------------- (95) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (96) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c39_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1 ---------------------------------------- (97) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(head(z0)) -> c39(A__HEAD(mark(z0)), MARK(z0)) by MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(tt)) -> c39(A__HEAD(tt), MARK(tt)) MARK(head(pair(z0, z1))) -> c39(A__HEAD(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c39(A__HEAD(s(mark(z0))), MARK(s(z0))) MARK(head(0)) -> c39(A__HEAD(0), MARK(0)) MARK(head(nil)) -> c39(A__HEAD(nil), MARK(nil)) ---------------------------------------- (98) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(tt)) -> c39(A__HEAD(tt), MARK(tt)) MARK(head(pair(z0, z1))) -> c39(A__HEAD(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c39(A__HEAD(s(mark(z0))), MARK(s(z0))) MARK(head(0)) -> c39(A__HEAD(0), MARK(0)) MARK(head(nil)) -> c39(A__HEAD(nil), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(tt)) -> c39(A__HEAD(tt), MARK(tt)) MARK(head(pair(z0, z1))) -> c39(A__HEAD(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c39(A__HEAD(s(mark(z0))), MARK(s(z0))) MARK(head(0)) -> c39(A__HEAD(0), MARK(0)) MARK(head(nil)) -> c39(A__HEAD(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2 ---------------------------------------- (99) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(head(tt)) -> c39(A__HEAD(tt), MARK(tt)) MARK(head(nil)) -> c39(A__HEAD(nil), MARK(nil)) MARK(head(0)) -> c39(A__HEAD(0), MARK(0)) ---------------------------------------- (100) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(pair(z0, z1))) -> c39(A__HEAD(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c39(A__HEAD(s(mark(z0))), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(pair(z0, z1))) -> c39(A__HEAD(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(s(z0))) -> c39(A__HEAD(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2 ---------------------------------------- (101) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (102) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c43_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1 ---------------------------------------- (103) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace MARK(tail(z0)) -> c43(A__TAIL(mark(z0)), MARK(z0)) by MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(tt)) -> c43(A__TAIL(tt), MARK(tt)) MARK(tail(pair(z0, z1))) -> c43(A__TAIL(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c43(A__TAIL(s(mark(z0))), MARK(s(z0))) MARK(tail(0)) -> c43(A__TAIL(0), MARK(0)) MARK(tail(nil)) -> c43(A__TAIL(nil), MARK(nil)) ---------------------------------------- (104) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(tt)) -> c43(A__TAIL(tt), MARK(tt)) MARK(tail(pair(z0, z1))) -> c43(A__TAIL(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c43(A__TAIL(s(mark(z0))), MARK(s(z0))) MARK(tail(0)) -> c43(A__TAIL(0), MARK(0)) MARK(tail(nil)) -> c43(A__TAIL(nil), MARK(nil)) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(tt)) -> c43(A__TAIL(tt), MARK(tt)) MARK(tail(pair(z0, z1))) -> c43(A__TAIL(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c43(A__TAIL(s(mark(z0))), MARK(s(z0))) MARK(tail(0)) -> c43(A__TAIL(0), MARK(0)) MARK(tail(nil)) -> c43(A__TAIL(nil), MARK(nil)) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2 ---------------------------------------- (105) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID)) Removed 3 trailing nodes: MARK(tail(tt)) -> c43(A__TAIL(tt), MARK(tt)) MARK(tail(0)) -> c43(A__TAIL(0), MARK(0)) MARK(tail(nil)) -> c43(A__TAIL(nil), MARK(nil)) ---------------------------------------- (106) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(A__TAIL(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c43(A__TAIL(s(mark(z0))), MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(A__TAIL(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(s(z0))) -> c43(A__TAIL(s(mark(z0))), MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2 ---------------------------------------- (107) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 2 trailing tuple parts ---------------------------------------- (108) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1 ---------------------------------------- (109) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) by A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(splitAt(mark(x0), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5))), MARK(0)) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5))), MARK(nil)) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) ---------------------------------------- (110) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(splitAt(mark(x0), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5))), MARK(0)) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5))), MARK(nil)) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(splitAt(mark(x0), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5))), MARK(0)) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5))), MARK(nil)) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (111) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (112) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (113) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, U12(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3))), MARK(0)) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) ---------------------------------------- (114) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3))), MARK(0)) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3))), MARK(0)) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (115) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (116) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (117) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, splitAt(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3))), MARK(0)) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) ---------------------------------------- (118) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3))), MARK(0)) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3))), MARK(0)) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (119) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (120) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (121) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, afterNth(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3))), MARK(0)) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) ---------------------------------------- (122) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3))), MARK(0)) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3))), MARK(0)) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (123) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (124) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (125) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, snd(z0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) by A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(splitAt(mark(x0), a__snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2))), MARK(0)) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2))), MARK(nil)) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) ---------------------------------------- (126) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(splitAt(mark(x0), a__snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2))), MARK(0)) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2))), MARK(nil)) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(splitAt(mark(x0), a__snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2))), MARK(0)) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2))), MARK(nil)) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (127) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (128) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (129) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, and(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, and(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3))), MARK(0)) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) ---------------------------------------- (130) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3))), MARK(0)) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3))), MARK(0)) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (131) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (132) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (133) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, fst(z0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) by A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(splitAt(mark(x0), a__fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2))), MARK(0)) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2))), MARK(nil)) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) ---------------------------------------- (134) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(splitAt(mark(x0), a__fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2))), MARK(0)) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2))), MARK(nil)) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(splitAt(mark(x0), a__fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2))), MARK(0)) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2))), MARK(nil)) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (135) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (136) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (137) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, head(z0)) -> c(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) by A__U11(tt, x0, x1, head(x2)) -> c(A__U12(splitAt(mark(x0), a__head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2))), MARK(0)) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2))), MARK(nil)) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) ---------------------------------------- (138) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(splitAt(mark(x0), a__head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2))), MARK(0)) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2))), MARK(nil)) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(splitAt(mark(x0), a__head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2))), MARK(0)) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2))), MARK(nil)) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (139) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (140) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (141) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, natsFrom(z0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) by A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(splitAt(mark(x0), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2))), MARK(0)) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2))), MARK(nil)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) ---------------------------------------- (142) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(splitAt(mark(x0), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2))), MARK(0)) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2))), MARK(nil)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(splitAt(mark(x0), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2))), MARK(0)) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2))), MARK(nil)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (143) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (144) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (145) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, sel(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3))), MARK(0)) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) ---------------------------------------- (146) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3))), MARK(0)) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3))), MARK(0)) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (147) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (148) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (149) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, tail(z0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) by A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(splitAt(mark(x0), a__tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2))), MARK(0)) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2))), MARK(nil)) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) ---------------------------------------- (150) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(splitAt(mark(x0), a__tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2))), MARK(0)) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2))), MARK(nil)) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(splitAt(mark(x0), a__tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2))), MARK(0)) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2))), MARK(nil)) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (151) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (152) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (153) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, take(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3))), MARK(0)) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) ---------------------------------------- (154) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3))), MARK(0)) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(splitAt(mark(x0), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3))), MARK(0)) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (155) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (156) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (157) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, tt) -> c(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) by A__U11(tt, x0, x1, tt) -> c(A__U12(splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt)), MARK(0)) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt)), MARK(nil)) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) ---------------------------------------- (158) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, x0, x1, tt) -> c(A__U12(splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt)), MARK(0)) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt)), MARK(nil)) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, x0, x1, tt) -> c(A__U12(splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt)), MARK(tt)) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt)), MARK(0)) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt)), MARK(nil)) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (159) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (160) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (161) CdtNarrowingProof (BOTH BOUNDS(ID, ID)) Use narrowing to replace A__U11(tt, x0, x1, pair(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) by A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__U12(splitAt(mark(x0), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(pair(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(pair(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(pair(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, pair(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(0, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(0, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(pair(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(pair(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(pair(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(pair(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(pair(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(pair(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(pair(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(pair(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(pair(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(pair(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(pair(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(pair(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(tt, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(pair(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(pair(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(pair(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(pair(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(0, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(pair(x2, x3))), MARK(0)) A__U11(tt, nil, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(nil, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(pair(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3)))) ---------------------------------------- (162) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__U12(splitAt(mark(x0), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(pair(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(pair(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(pair(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, pair(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(0, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(0, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(pair(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(pair(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(pair(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(pair(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(pair(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(pair(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(pair(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(pair(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(pair(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(pair(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(pair(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(pair(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(tt, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(pair(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(pair(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(pair(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(pair(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(0, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(pair(x2, x3))), MARK(0)) A__U11(tt, nil, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(nil, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(pair(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__U12(splitAt(mark(x0), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(pair(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(pair(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(pair(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, pair(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(0, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(0, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(pair(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(pair(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(pair(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(pair(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(pair(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(pair(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(pair(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(pair(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(pair(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(pair(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(pair(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(pair(x2, x3))), MARK(take(z0, z1))) A__U11(tt, tt, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(tt, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(pair(x2, x3))), MARK(tt)) A__U11(tt, pair(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(pair(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(pair(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(pair(x2, x3))), MARK(s(z0))) A__U11(tt, 0, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(0, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(pair(x2, x3))), MARK(0)) A__U11(tt, nil, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(nil, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(pair(x2, x3))), MARK(nil)) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1 ---------------------------------------- (163) CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID)) Removed 4 trailing tuple parts ---------------------------------------- (164) Obligation: Complexity Dependency Tuples Problem Rules: a__U11(tt, z0, z1, z2) -> a__U12(a__splitAt(mark(z0), mark(z2)), z1) a__U11(z0, z1, z2, z3) -> U11(z0, z1, z2, z3) a__U12(pair(z0, z1), z2) -> pair(cons(mark(z2), z0), mark(z1)) a__U12(z0, z1) -> U12(z0, z1) a__afterNth(z0, z1) -> a__snd(a__splitAt(mark(z0), mark(z1))) a__afterNth(z0, z1) -> afterNth(z0, z1) a__and(tt, z0) -> mark(z0) a__and(z0, z1) -> and(z0, z1) a__fst(pair(z0, z1)) -> mark(z0) a__fst(z0) -> fst(z0) a__head(cons(z0, z1)) -> mark(z0) a__head(z0) -> head(z0) a__natsFrom(z0) -> cons(mark(z0), natsFrom(s(z0))) a__natsFrom(z0) -> natsFrom(z0) a__sel(z0, z1) -> a__head(a__afterNth(mark(z0), mark(z1))) a__sel(z0, z1) -> sel(z0, z1) a__snd(pair(z0, z1)) -> mark(z1) a__snd(z0) -> snd(z0) a__splitAt(0, z0) -> pair(nil, mark(z0)) a__splitAt(s(z0), cons(z1, z2)) -> a__U11(tt, z0, z1, z2) a__splitAt(z0, z1) -> splitAt(z0, z1) a__tail(cons(z0, z1)) -> mark(z1) a__tail(z0) -> tail(z0) a__take(z0, z1) -> a__fst(a__splitAt(mark(z0), mark(z1))) a__take(z0, z1) -> take(z0, z1) mark(U11(z0, z1, z2, z3)) -> a__U11(mark(z0), z1, z2, z3) mark(U12(z0, z1)) -> a__U12(mark(z0), z1) mark(splitAt(z0, z1)) -> a__splitAt(mark(z0), mark(z1)) mark(afterNth(z0, z1)) -> a__afterNth(mark(z0), mark(z1)) mark(snd(z0)) -> a__snd(mark(z0)) mark(and(z0, z1)) -> a__and(mark(z0), z1) mark(fst(z0)) -> a__fst(mark(z0)) mark(head(z0)) -> a__head(mark(z0)) mark(natsFrom(z0)) -> a__natsFrom(mark(z0)) mark(sel(z0, z1)) -> a__sel(mark(z0), mark(z1)) mark(tail(z0)) -> a__tail(mark(z0)) mark(take(z0, z1)) -> a__take(mark(z0), mark(z1)) mark(tt) -> tt mark(pair(z0, z1)) -> pair(mark(z0), mark(z1)) mark(cons(z0, z1)) -> cons(mark(z0), z1) mark(s(z0)) -> s(mark(z0)) mark(0) -> 0 mark(nil) -> nil Tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) A__U11(tt, x0, x1, pair(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(pair(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(pair(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(pair(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, pair(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(0, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(0, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(pair(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(pair(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(pair(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(pair(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(pair(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(pair(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(pair(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(pair(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(pair(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(pair(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(pair(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(pair(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(pair(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(pair(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(pair(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3)))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(tt, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(pair(x2, x3)))) A__U11(tt, 0, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(0, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(pair(x2, x3)))) A__U11(tt, nil, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(nil, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(pair(x2, x3)))) S tuples: A__U12(pair(z0, z1), z2) -> c3(MARK(z2)) A__U12(pair(z0, z1), z2) -> c4(MARK(z1)) A__AND(tt, z0) -> c9(MARK(z0)) A__FST(pair(z0, z1)) -> c11(MARK(z0)) A__HEAD(cons(z0, z1)) -> c13(MARK(z0)) A__NATSFROM(z0) -> c15(MARK(z0)) A__SND(pair(z0, z1)) -> c20(MARK(z1)) A__SPLITAT(0, z0) -> c22(MARK(z0)) A__SPLITAT(s(z0), cons(z1, z2)) -> c23(A__U11(tt, z0, z1, z2)) A__TAIL(cons(z0, z1)) -> c25(MARK(z1)) MARK(afterNth(z0, z1)) -> c34(A__AFTERNTH(mark(z0), mark(z1)), MARK(z0)) MARK(afterNth(z0, z1)) -> c35(A__AFTERNTH(mark(z0), mark(z1)), MARK(z1)) MARK(natsFrom(z0)) -> c40(A__NATSFROM(mark(z0)), MARK(z0)) MARK(sel(z0, z1)) -> c41(A__SEL(mark(z0), mark(z1)), MARK(z0)) MARK(sel(z0, z1)) -> c42(A__SEL(mark(z0), mark(z1)), MARK(z1)) MARK(take(z0, z1)) -> c44(A__TAKE(mark(z0), mark(z1)), MARK(z0)) MARK(take(z0, z1)) -> c45(A__TAKE(mark(z0), mark(z1)), MARK(z1)) MARK(pair(z0, z1)) -> c47(MARK(z0)) MARK(pair(z0, z1)) -> c48(MARK(z1)) MARK(cons(z0, z1)) -> c49(MARK(z0)) MARK(s(z0)) -> c50(MARK(z0)) A__U11(tt, x0, x1, cons(z0, z1)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__U11(tt, x0, x1, s(z0)) -> c(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__U11(tt, x0, x1, 0) -> c(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__U11(tt, x0, x1, nil) -> c(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, x2) -> c(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, x2) -> c(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(fst(z0))) A__U11(tt, head(z0), x1, x2) -> c(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, x2) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, x2) -> c(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, x2) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, x2) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, x2) -> c(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, x2) -> c(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(s(z0))) A__U11(tt, x0, x1, x2) -> c(A__SPLITAT(mark(x0), mark(x2)), MARK(x0)) A__U11(tt, tt, x1, x2) -> c(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2))) A__U11(tt, 0, x1, x2) -> c(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2))) A__U11(tt, nil, x1, x2) -> c(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2))) A__U11(tt, x0, x1, U11(z0, z1, z2, z3)) -> c1(A__U12(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, x0, x1, U12(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__U12(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__U11(tt, x0, x1, splitAt(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__U11(tt, x0, x1, afterNth(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__U11(tt, x0, x1, snd(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__snd(mark(z0))), x1), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__U11(tt, x0, x1, and(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__and(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__U11(tt, x0, x1, fst(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__fst(mark(z0))), x1), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__U11(tt, x0, x1, head(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__head(mark(z0))), x1), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__U11(tt, x0, x1, natsFrom(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__natsFrom(mark(z0))), x1), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__U11(tt, x0, x1, sel(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__U11(tt, x0, x1, tail(z0)) -> c1(A__U12(a__splitAt(mark(x0), a__tail(mark(z0))), x1), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__U11(tt, x0, x1, take(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), a__take(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__U11(tt, x0, x1, pair(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), pair(mark(z0), mark(z1))), x1), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__U11(tt, x0, x1, cons(z0, z1)) -> c1(A__U12(a__splitAt(mark(x0), cons(mark(z0), z1)), x1), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__U11(tt, x0, x1, s(z0)) -> c1(A__U12(a__splitAt(mark(x0), s(mark(z0))), x1), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__U11(tt, U11(z0, z1, z2, z3), x1, x2) -> c1(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x2)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x2)), MARK(x2)) A__U11(tt, U12(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__U12(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, splitAt(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, afterNth(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, snd(z0), x1, x2) -> c1(A__U12(a__splitAt(a__snd(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(snd(z0)), mark(x2)), MARK(x2)) A__U11(tt, and(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__and(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(and(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, fst(z0), x1, x2) -> c1(A__U12(a__splitAt(a__fst(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(fst(z0)), mark(x2)), MARK(x2)) A__U11(tt, head(z0), x1, x2) -> c1(A__U12(a__splitAt(a__head(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(head(z0)), mark(x2)), MARK(x2)) A__U11(tt, natsFrom(z0), x1, x2) -> c1(A__U12(a__splitAt(a__natsFrom(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(x2)), MARK(x2)) A__U11(tt, sel(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tail(z0), x1, x2) -> c1(A__U12(a__splitAt(a__tail(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(tail(z0)), mark(x2)), MARK(x2)) A__U11(tt, take(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(take(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, tt, x1, x2) -> c1(A__U12(a__splitAt(tt, mark(x2)), x1), A__SPLITAT(mark(tt), mark(x2)), MARK(x2)) A__U11(tt, pair(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(pair(mark(z0), mark(z1)), mark(x2)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, cons(z0, z1), x1, x2) -> c1(A__U12(a__splitAt(cons(mark(z0), z1), mark(x2)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(x2)), MARK(x2)) A__U11(tt, s(z0), x1, x2) -> c1(A__U12(a__splitAt(s(mark(z0)), mark(x2)), x1), A__SPLITAT(mark(s(z0)), mark(x2)), MARK(x2)) A__U11(tt, 0, x1, x2) -> c1(A__U12(a__splitAt(0, mark(x2)), x1), A__SPLITAT(mark(0), mark(x2)), MARK(x2)) A__U11(tt, nil, x1, x2) -> c1(A__U12(a__splitAt(nil, mark(x2)), x1), A__SPLITAT(mark(nil), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, x2) -> c1(A__SPLITAT(mark(x0), mark(x2)), MARK(x2)) A__U11(tt, x0, x1, tt) -> c1(A__U12(a__splitAt(mark(x0), tt), x1), A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, 0) -> c1(A__U12(a__splitAt(mark(x0), 0), x1), A__SPLITAT(mark(x0), mark(0))) A__U11(tt, x0, x1, nil) -> c1(A__U12(a__splitAt(mark(x0), nil), x1), A__SPLITAT(mark(x0), mark(nil))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c6(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__AFTERNTH(x0, U12(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__AFTERNTH(x0, splitAt(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__AFTERNTH(x0, afterNth(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__AFTERNTH(x0, snd(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__AFTERNTH(x0, and(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__AFTERNTH(x0, fst(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__AFTERNTH(x0, head(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__AFTERNTH(x0, natsFrom(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__AFTERNTH(x0, sel(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tail(z0)) -> c6(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__AFTERNTH(x0, take(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__AFTERNTH(x0, tt) -> c6(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__AFTERNTH(x0, pair(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__AFTERNTH(x0, cons(z0, z1)) -> c6(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__AFTERNTH(x0, s(z0)) -> c6(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__AFTERNTH(x0, 0) -> c6(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__AFTERNTH(x0, nil) -> c6(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c6(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(U12(z0, z1), x1) -> c6(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__AFTERNTH(splitAt(z0, z1), x1) -> c6(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__AFTERNTH(afterNth(z0, z1), x1) -> c6(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__AFTERNTH(snd(z0), x1) -> c6(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__AFTERNTH(and(z0, z1), x1) -> c6(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__AFTERNTH(fst(z0), x1) -> c6(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__AFTERNTH(head(z0), x1) -> c6(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__AFTERNTH(natsFrom(z0), x1) -> c6(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__AFTERNTH(sel(z0, z1), x1) -> c6(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__AFTERNTH(tail(z0), x1) -> c6(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__AFTERNTH(take(z0, z1), x1) -> c6(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__AFTERNTH(pair(z0, z1), x1) -> c6(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__AFTERNTH(cons(z0, z1), x1) -> c6(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__AFTERNTH(s(z0), x1) -> c6(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__AFTERNTH(x0, x1) -> c6(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__AFTERNTH(tt, x1) -> c6(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__AFTERNTH(0, x1) -> c6(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__AFTERNTH(nil, x1) -> c6(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__AFTERNTH(x0, U11(z0, z1, z2, z3)) -> c7(A__SND(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__AFTERNTH(x0, U12(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__AFTERNTH(x0, splitAt(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__AFTERNTH(x0, afterNth(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__AFTERNTH(x0, snd(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__AFTERNTH(x0, and(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__AFTERNTH(x0, fst(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__AFTERNTH(x0, head(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__AFTERNTH(x0, natsFrom(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__AFTERNTH(x0, sel(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__AFTERNTH(x0, tail(z0)) -> c7(A__SND(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__AFTERNTH(x0, take(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__AFTERNTH(x0, pair(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__AFTERNTH(x0, cons(z0, z1)) -> c7(A__SND(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__AFTERNTH(x0, s(z0)) -> c7(A__SND(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__AFTERNTH(U11(z0, z1, z2, z3), x1) -> c7(A__SND(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__AFTERNTH(U12(z0, z1), x1) -> c7(A__SND(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(splitAt(z0, z1), x1) -> c7(A__SND(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(afterNth(z0, z1), x1) -> c7(A__SND(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(snd(z0), x1) -> c7(A__SND(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(and(z0, z1), x1) -> c7(A__SND(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(fst(z0), x1) -> c7(A__SND(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(head(z0), x1) -> c7(A__SND(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(natsFrom(z0), x1) -> c7(A__SND(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(sel(z0, z1), x1) -> c7(A__SND(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tail(z0), x1) -> c7(A__SND(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(take(z0, z1), x1) -> c7(A__SND(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(tt, x1) -> c7(A__SND(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__AFTERNTH(pair(z0, z1), x1) -> c7(A__SND(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(cons(z0, z1), x1) -> c7(A__SND(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__AFTERNTH(s(z0), x1) -> c7(A__SND(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__AFTERNTH(0, x1) -> c7(A__SND(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__AFTERNTH(nil, x1) -> c7(A__SND(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__AFTERNTH(x0, x1) -> c7(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__AFTERNTH(x0, tt) -> c7(A__SND(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__AFTERNTH(x0, 0) -> c7(A__SND(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__AFTERNTH(x0, nil) -> c7(A__SND(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) A__SEL(x0, x1) -> c17(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__SEL(x0, U12(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__SEL(x0, splitAt(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__SEL(x0, afterNth(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__SEL(x0, snd(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(x0)) A__SEL(x0, and(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(x0)) A__SEL(x0, fst(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(x0)) A__SEL(x0, head(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(x0)) A__SEL(x0, natsFrom(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__SEL(x0, sel(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__SEL(x0, tail(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(x0)) A__SEL(x0, take(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(x0)) A__SEL(x0, tt) -> c17(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt)), MARK(x0)) A__SEL(x0, pair(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__SEL(x0, cons(z0, z1)) -> c17(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__SEL(x0, s(z0)) -> c17(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(x0)) A__SEL(x0, 0) -> c17(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0)), MARK(x0)) A__SEL(x0, nil) -> c17(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil)), MARK(x0)) A__SEL(U11(z0, z1, z2, z3), x1) -> c17(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__SEL(U12(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__SEL(splitAt(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__SEL(afterNth(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__SEL(snd(z0), x1) -> c17(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__SEL(and(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__SEL(fst(z0), x1) -> c17(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__SEL(head(z0), x1) -> c17(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(head(z0))) A__SEL(natsFrom(z0), x1) -> c17(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__SEL(sel(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__SEL(tail(z0), x1) -> c17(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__SEL(take(z0, z1), x1) -> c17(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__SEL(pair(z0, z1), x1) -> c17(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__SEL(cons(z0, z1), x1) -> c17(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__SEL(s(z0), x1) -> c17(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(s(z0))) A__SEL(x0, x1) -> c17(A__AFTERNTH(mark(x0), mark(x1)), MARK(x0)) A__SEL(tt, x1) -> c17(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1))) A__SEL(0, x1) -> c17(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1))) A__SEL(nil, x1) -> c17(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1))) A__SEL(x0, x1) -> c18(A__HEAD(a__snd(a__splitAt(mark(mark(x0)), mark(mark(x1))))), A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, U11(z0, z1, z2, z3)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__AFTERNTH(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__SEL(x0, U12(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__U12(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__SEL(x0, splitAt(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__SEL(x0, afterNth(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__SEL(x0, snd(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__snd(mark(z0)))), A__AFTERNTH(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__SEL(x0, and(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__and(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__SEL(x0, fst(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__fst(mark(z0)))), A__AFTERNTH(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__SEL(x0, head(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__head(mark(z0)))), A__AFTERNTH(mark(x0), mark(head(z0))), MARK(head(z0))) A__SEL(x0, natsFrom(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__natsFrom(mark(z0)))), A__AFTERNTH(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__SEL(x0, sel(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__sel(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__SEL(x0, tail(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), a__tail(mark(z0)))), A__AFTERNTH(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__SEL(x0, take(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), a__take(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__SEL(x0, pair(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), pair(mark(z0), mark(z1)))), A__AFTERNTH(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__SEL(x0, cons(z0, z1)) -> c18(A__HEAD(a__afterNth(mark(x0), cons(mark(z0), z1))), A__AFTERNTH(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__SEL(x0, s(z0)) -> c18(A__HEAD(a__afterNth(mark(x0), s(mark(z0)))), A__AFTERNTH(mark(x0), mark(s(z0))), MARK(s(z0))) A__SEL(U11(z0, z1, z2, z3), x1) -> c18(A__HEAD(a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__AFTERNTH(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__SEL(U12(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__U12(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__SEL(splitAt(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__SEL(afterNth(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__SEL(snd(z0), x1) -> c18(A__HEAD(a__afterNth(a__snd(mark(z0)), mark(x1))), A__AFTERNTH(mark(snd(z0)), mark(x1)), MARK(x1)) A__SEL(and(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__and(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__SEL(fst(z0), x1) -> c18(A__HEAD(a__afterNth(a__fst(mark(z0)), mark(x1))), A__AFTERNTH(mark(fst(z0)), mark(x1)), MARK(x1)) A__SEL(head(z0), x1) -> c18(A__HEAD(a__afterNth(a__head(mark(z0)), mark(x1))), A__AFTERNTH(mark(head(z0)), mark(x1)), MARK(x1)) A__SEL(natsFrom(z0), x1) -> c18(A__HEAD(a__afterNth(a__natsFrom(mark(z0)), mark(x1))), A__AFTERNTH(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__SEL(sel(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__sel(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tail(z0), x1) -> c18(A__HEAD(a__afterNth(a__tail(mark(z0)), mark(x1))), A__AFTERNTH(mark(tail(z0)), mark(x1)), MARK(x1)) A__SEL(take(z0, z1), x1) -> c18(A__HEAD(a__afterNth(a__take(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__SEL(tt, x1) -> c18(A__HEAD(a__afterNth(tt, mark(x1))), A__AFTERNTH(mark(tt), mark(x1)), MARK(x1)) A__SEL(pair(z0, z1), x1) -> c18(A__HEAD(a__afterNth(pair(mark(z0), mark(z1)), mark(x1))), A__AFTERNTH(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__SEL(cons(z0, z1), x1) -> c18(A__HEAD(a__afterNth(cons(mark(z0), z1), mark(x1))), A__AFTERNTH(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__SEL(s(z0), x1) -> c18(A__HEAD(a__afterNth(s(mark(z0)), mark(x1))), A__AFTERNTH(mark(s(z0)), mark(x1)), MARK(x1)) A__SEL(0, x1) -> c18(A__HEAD(a__afterNth(0, mark(x1))), A__AFTERNTH(mark(0), mark(x1)), MARK(x1)) A__SEL(nil, x1) -> c18(A__HEAD(a__afterNth(nil, mark(x1))), A__AFTERNTH(mark(nil), mark(x1)), MARK(x1)) A__SEL(x0, x1) -> c18(A__AFTERNTH(mark(x0), mark(x1)), MARK(x1)) A__SEL(x0, tt) -> c18(A__HEAD(a__afterNth(mark(x0), tt)), A__AFTERNTH(mark(x0), mark(tt))) A__SEL(x0, 0) -> c18(A__HEAD(a__afterNth(mark(x0), 0)), A__AFTERNTH(mark(x0), mark(0))) A__SEL(x0, nil) -> c18(A__HEAD(a__afterNth(mark(x0), nil)), A__AFTERNTH(mark(x0), mark(nil))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c27(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(x0)) A__TAKE(x0, U12(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(x0)) A__TAKE(x0, splitAt(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(x0)) A__TAKE(x0, afterNth(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(x0)) A__TAKE(x0, snd(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(x0)) A__TAKE(x0, and(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(x0)) A__TAKE(x0, fst(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(x0)) A__TAKE(x0, head(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(x0)) A__TAKE(x0, natsFrom(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(x0)) A__TAKE(x0, sel(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(x0)) A__TAKE(x0, tail(z0)) -> c27(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(x0)) A__TAKE(x0, take(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(x0)) A__TAKE(x0, tt) -> c27(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__TAKE(x0, pair(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(x0)) A__TAKE(x0, cons(z0, z1)) -> c27(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(x0)) A__TAKE(x0, s(z0)) -> c27(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(x0)) A__TAKE(x0, 0) -> c27(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0)), MARK(x0)) A__TAKE(x0, nil) -> c27(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil)), MARK(x0)) A__TAKE(U11(z0, z1, z2, z3), x1) -> c27(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(U11(z0, z1, z2, z3))) A__TAKE(U12(z0, z1), x1) -> c27(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(U12(z0, z1))) A__TAKE(splitAt(z0, z1), x1) -> c27(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(splitAt(z0, z1))) A__TAKE(afterNth(z0, z1), x1) -> c27(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(afterNth(z0, z1))) A__TAKE(snd(z0), x1) -> c27(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(snd(z0))) A__TAKE(and(z0, z1), x1) -> c27(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(and(z0, z1))) A__TAKE(fst(z0), x1) -> c27(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(fst(z0))) A__TAKE(head(z0), x1) -> c27(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(head(z0))) A__TAKE(natsFrom(z0), x1) -> c27(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(natsFrom(z0))) A__TAKE(sel(z0, z1), x1) -> c27(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(sel(z0, z1))) A__TAKE(tail(z0), x1) -> c27(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(tail(z0))) A__TAKE(take(z0, z1), x1) -> c27(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(take(z0, z1))) A__TAKE(pair(z0, z1), x1) -> c27(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(pair(z0, z1))) A__TAKE(cons(z0, z1), x1) -> c27(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(cons(z0, z1))) A__TAKE(s(z0), x1) -> c27(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(s(z0))) A__TAKE(x0, x1) -> c27(A__SPLITAT(mark(x0), mark(x1)), MARK(x0)) A__TAKE(tt, x1) -> c27(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1))) A__TAKE(0, x1) -> c27(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1))) A__TAKE(nil, x1) -> c27(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1))) A__TAKE(x0, U11(z0, z1, z2, z3)) -> c28(A__FST(a__splitAt(mark(x0), a__U11(mark(z0), z1, z2, z3))), A__SPLITAT(mark(x0), mark(U11(z0, z1, z2, z3))), MARK(U11(z0, z1, z2, z3))) A__TAKE(x0, U12(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__U12(mark(z0), z1))), A__SPLITAT(mark(x0), mark(U12(z0, z1))), MARK(U12(z0, z1))) A__TAKE(x0, splitAt(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__splitAt(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(splitAt(z0, z1))), MARK(splitAt(z0, z1))) A__TAKE(x0, afterNth(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__afterNth(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(afterNth(z0, z1))), MARK(afterNth(z0, z1))) A__TAKE(x0, snd(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__snd(mark(z0)))), A__SPLITAT(mark(x0), mark(snd(z0))), MARK(snd(z0))) A__TAKE(x0, and(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__and(mark(z0), z1))), A__SPLITAT(mark(x0), mark(and(z0, z1))), MARK(and(z0, z1))) A__TAKE(x0, fst(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__fst(mark(z0)))), A__SPLITAT(mark(x0), mark(fst(z0))), MARK(fst(z0))) A__TAKE(x0, head(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__head(mark(z0)))), A__SPLITAT(mark(x0), mark(head(z0))), MARK(head(z0))) A__TAKE(x0, natsFrom(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__natsFrom(mark(z0)))), A__SPLITAT(mark(x0), mark(natsFrom(z0))), MARK(natsFrom(z0))) A__TAKE(x0, sel(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__sel(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(sel(z0, z1))), MARK(sel(z0, z1))) A__TAKE(x0, tail(z0)) -> c28(A__FST(a__splitAt(mark(x0), a__tail(mark(z0)))), A__SPLITAT(mark(x0), mark(tail(z0))), MARK(tail(z0))) A__TAKE(x0, take(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), a__take(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(take(z0, z1))), MARK(take(z0, z1))) A__TAKE(x0, pair(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), pair(mark(z0), mark(z1)))), A__SPLITAT(mark(x0), mark(pair(z0, z1))), MARK(pair(z0, z1))) A__TAKE(x0, cons(z0, z1)) -> c28(A__FST(a__splitAt(mark(x0), cons(mark(z0), z1))), A__SPLITAT(mark(x0), mark(cons(z0, z1))), MARK(cons(z0, z1))) A__TAKE(x0, s(z0)) -> c28(A__FST(a__splitAt(mark(x0), s(mark(z0)))), A__SPLITAT(mark(x0), mark(s(z0))), MARK(s(z0))) A__TAKE(U11(z0, z1, z2, z3), x1) -> c28(A__FST(a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x1))), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(x1)), MARK(x1)) A__TAKE(U12(z0, z1), x1) -> c28(A__FST(a__splitAt(a__U12(mark(z0), z1), mark(x1))), A__SPLITAT(mark(U12(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(splitAt(z0, z1), x1) -> c28(A__FST(a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(splitAt(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(afterNth(z0, z1), x1) -> c28(A__FST(a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(afterNth(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(snd(z0), x1) -> c28(A__FST(a__splitAt(a__snd(mark(z0)), mark(x1))), A__SPLITAT(mark(snd(z0)), mark(x1)), MARK(x1)) A__TAKE(and(z0, z1), x1) -> c28(A__FST(a__splitAt(a__and(mark(z0), z1), mark(x1))), A__SPLITAT(mark(and(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(fst(z0), x1) -> c28(A__FST(a__splitAt(a__fst(mark(z0)), mark(x1))), A__SPLITAT(mark(fst(z0)), mark(x1)), MARK(x1)) A__TAKE(head(z0), x1) -> c28(A__FST(a__splitAt(a__head(mark(z0)), mark(x1))), A__SPLITAT(mark(head(z0)), mark(x1)), MARK(x1)) A__TAKE(natsFrom(z0), x1) -> c28(A__FST(a__splitAt(a__natsFrom(mark(z0)), mark(x1))), A__SPLITAT(mark(natsFrom(z0)), mark(x1)), MARK(x1)) A__TAKE(sel(z0, z1), x1) -> c28(A__FST(a__splitAt(a__sel(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(sel(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tail(z0), x1) -> c28(A__FST(a__splitAt(a__tail(mark(z0)), mark(x1))), A__SPLITAT(mark(tail(z0)), mark(x1)), MARK(x1)) A__TAKE(take(z0, z1), x1) -> c28(A__FST(a__splitAt(a__take(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(take(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(tt, x1) -> c28(A__FST(a__splitAt(tt, mark(x1))), A__SPLITAT(mark(tt), mark(x1)), MARK(x1)) A__TAKE(pair(z0, z1), x1) -> c28(A__FST(a__splitAt(pair(mark(z0), mark(z1)), mark(x1))), A__SPLITAT(mark(pair(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(cons(z0, z1), x1) -> c28(A__FST(a__splitAt(cons(mark(z0), z1), mark(x1))), A__SPLITAT(mark(cons(z0, z1)), mark(x1)), MARK(x1)) A__TAKE(s(z0), x1) -> c28(A__FST(a__splitAt(s(mark(z0)), mark(x1))), A__SPLITAT(mark(s(z0)), mark(x1)), MARK(x1)) A__TAKE(0, x1) -> c28(A__FST(a__splitAt(0, mark(x1))), A__SPLITAT(mark(0), mark(x1)), MARK(x1)) A__TAKE(nil, x1) -> c28(A__FST(a__splitAt(nil, mark(x1))), A__SPLITAT(mark(nil), mark(x1)), MARK(x1)) A__TAKE(x0, x1) -> c28(A__SPLITAT(mark(x0), mark(x1)), MARK(x1)) A__TAKE(x0, tt) -> c28(A__FST(a__splitAt(mark(x0), tt)), A__SPLITAT(mark(x0), mark(tt))) A__TAKE(x0, 0) -> c28(A__FST(a__splitAt(mark(x0), 0)), A__SPLITAT(mark(x0), mark(0))) A__TAKE(x0, nil) -> c28(A__FST(a__splitAt(mark(x0), nil)), A__SPLITAT(mark(x0), mark(nil))) MARK(U11(U11(z0, z1, z2, z3), x1, x2, x3)) -> c30(A__U11(a__U11(mark(z0), z1, z2, z3), x1, x2, x3), MARK(U11(z0, z1, z2, z3))) MARK(U11(U12(z0, z1), x1, x2, x3)) -> c30(A__U11(a__U12(mark(z0), z1), x1, x2, x3), MARK(U12(z0, z1))) MARK(U11(splitAt(z0, z1), x1, x2, x3)) -> c30(A__U11(a__splitAt(mark(z0), mark(z1)), x1, x2, x3), MARK(splitAt(z0, z1))) MARK(U11(afterNth(z0, z1), x1, x2, x3)) -> c30(A__U11(a__afterNth(mark(z0), mark(z1)), x1, x2, x3), MARK(afterNth(z0, z1))) MARK(U11(snd(z0), x1, x2, x3)) -> c30(A__U11(a__snd(mark(z0)), x1, x2, x3), MARK(snd(z0))) MARK(U11(and(z0, z1), x1, x2, x3)) -> c30(A__U11(a__and(mark(z0), z1), x1, x2, x3), MARK(and(z0, z1))) MARK(U11(fst(z0), x1, x2, x3)) -> c30(A__U11(a__fst(mark(z0)), x1, x2, x3), MARK(fst(z0))) MARK(U11(head(z0), x1, x2, x3)) -> c30(A__U11(a__head(mark(z0)), x1, x2, x3), MARK(head(z0))) MARK(U11(natsFrom(z0), x1, x2, x3)) -> c30(A__U11(a__natsFrom(mark(z0)), x1, x2, x3), MARK(natsFrom(z0))) MARK(U11(sel(z0, z1), x1, x2, x3)) -> c30(A__U11(a__sel(mark(z0), mark(z1)), x1, x2, x3), MARK(sel(z0, z1))) MARK(U11(tail(z0), x1, x2, x3)) -> c30(A__U11(a__tail(mark(z0)), x1, x2, x3), MARK(tail(z0))) MARK(U11(take(z0, z1), x1, x2, x3)) -> c30(A__U11(a__take(mark(z0), mark(z1)), x1, x2, x3), MARK(take(z0, z1))) MARK(U11(tt, x1, x2, x3)) -> c30(A__U11(tt, x1, x2, x3)) MARK(U11(pair(z0, z1), x1, x2, x3)) -> c30(MARK(pair(z0, z1))) MARK(U11(cons(z0, z1), x1, x2, x3)) -> c30(MARK(cons(z0, z1))) MARK(U11(s(z0), x1, x2, x3)) -> c30(MARK(s(z0))) MARK(U12(U11(z0, z1, z2, z3), x1)) -> c31(A__U12(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(U12(U12(z0, z1), x1)) -> c31(A__U12(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(U12(splitAt(z0, z1), x1)) -> c31(A__U12(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(U12(afterNth(z0, z1), x1)) -> c31(A__U12(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(U12(snd(z0), x1)) -> c31(A__U12(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(U12(and(z0, z1), x1)) -> c31(A__U12(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(U12(fst(z0), x1)) -> c31(A__U12(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(U12(head(z0), x1)) -> c31(A__U12(a__head(mark(z0)), x1), MARK(head(z0))) MARK(U12(natsFrom(z0), x1)) -> c31(A__U12(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(U12(sel(z0, z1), x1)) -> c31(A__U12(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(U12(tail(z0), x1)) -> c31(A__U12(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(U12(take(z0, z1), x1)) -> c31(A__U12(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(U12(pair(z0, z1), x1)) -> c31(A__U12(pair(mark(z0), mark(z1)), x1), MARK(pair(z0, z1))) MARK(U12(cons(z0, z1), x1)) -> c31(MARK(cons(z0, z1))) MARK(U12(s(z0), x1)) -> c31(MARK(s(z0))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c32(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(x0)) MARK(splitAt(x0, U12(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, splitAt(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, afterNth(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, snd(z0))) -> c32(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(x0)) MARK(splitAt(x0, and(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, fst(z0))) -> c32(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(x0)) MARK(splitAt(x0, head(z0))) -> c32(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(x0)) MARK(splitAt(x0, natsFrom(z0))) -> c32(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(x0)) MARK(splitAt(x0, sel(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tail(z0))) -> c32(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(x0)) MARK(splitAt(x0, take(z0, z1))) -> c32(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, tt)) -> c32(A__SPLITAT(mark(x0), tt), MARK(x0)) MARK(splitAt(x0, pair(z0, z1))) -> c32(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(x0)) MARK(splitAt(x0, cons(z0, z1))) -> c32(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(x0)) MARK(splitAt(x0, s(z0))) -> c32(A__SPLITAT(mark(x0), s(mark(z0))), MARK(x0)) MARK(splitAt(x0, 0)) -> c32(A__SPLITAT(mark(x0), 0), MARK(x0)) MARK(splitAt(x0, nil)) -> c32(A__SPLITAT(mark(x0), nil), MARK(x0)) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c32(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(U12(z0, z1), x1)) -> c32(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(U12(z0, z1))) MARK(splitAt(splitAt(z0, z1), x1)) -> c32(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(splitAt(z0, z1))) MARK(splitAt(afterNth(z0, z1), x1)) -> c32(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(afterNth(z0, z1))) MARK(splitAt(snd(z0), x1)) -> c32(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(snd(z0))) MARK(splitAt(and(z0, z1), x1)) -> c32(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(and(z0, z1))) MARK(splitAt(fst(z0), x1)) -> c32(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(fst(z0))) MARK(splitAt(head(z0), x1)) -> c32(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(head(z0))) MARK(splitAt(natsFrom(z0), x1)) -> c32(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(natsFrom(z0))) MARK(splitAt(sel(z0, z1), x1)) -> c32(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(sel(z0, z1))) MARK(splitAt(tail(z0), x1)) -> c32(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(tail(z0))) MARK(splitAt(take(z0, z1), x1)) -> c32(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(take(z0, z1))) MARK(splitAt(s(z0), x1)) -> c32(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(s(z0))) MARK(splitAt(pair(z0, z1), x1)) -> c32(MARK(pair(z0, z1))) MARK(splitAt(cons(z0, z1), x1)) -> c32(MARK(cons(z0, z1))) MARK(splitAt(0, x1)) -> c32(A__SPLITAT(0, mark(x1))) MARK(splitAt(x0, U11(z0, z1, z2, z3))) -> c33(A__SPLITAT(mark(x0), a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(splitAt(x0, U12(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(splitAt(x0, splitAt(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(splitAt(x0, afterNth(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(splitAt(x0, snd(z0))) -> c33(A__SPLITAT(mark(x0), a__snd(mark(z0))), MARK(snd(z0))) MARK(splitAt(x0, and(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(splitAt(x0, fst(z0))) -> c33(A__SPLITAT(mark(x0), a__fst(mark(z0))), MARK(fst(z0))) MARK(splitAt(x0, head(z0))) -> c33(A__SPLITAT(mark(x0), a__head(mark(z0))), MARK(head(z0))) MARK(splitAt(x0, natsFrom(z0))) -> c33(A__SPLITAT(mark(x0), a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(splitAt(x0, sel(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(splitAt(x0, tail(z0))) -> c33(A__SPLITAT(mark(x0), a__tail(mark(z0))), MARK(tail(z0))) MARK(splitAt(x0, take(z0, z1))) -> c33(A__SPLITAT(mark(x0), a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(splitAt(x0, pair(z0, z1))) -> c33(A__SPLITAT(mark(x0), pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(splitAt(x0, cons(z0, z1))) -> c33(A__SPLITAT(mark(x0), cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(splitAt(x0, s(z0))) -> c33(A__SPLITAT(mark(x0), s(mark(z0))), MARK(s(z0))) MARK(splitAt(U11(z0, z1, z2, z3), x1)) -> c33(A__SPLITAT(a__U11(mark(z0), z1, z2, z3), mark(x1)), MARK(x1)) MARK(splitAt(U12(z0, z1), x1)) -> c33(A__SPLITAT(a__U12(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(splitAt(z0, z1), x1)) -> c33(A__SPLITAT(a__splitAt(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(afterNth(z0, z1), x1)) -> c33(A__SPLITAT(a__afterNth(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(snd(z0), x1)) -> c33(A__SPLITAT(a__snd(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(and(z0, z1), x1)) -> c33(A__SPLITAT(a__and(mark(z0), z1), mark(x1)), MARK(x1)) MARK(splitAt(fst(z0), x1)) -> c33(A__SPLITAT(a__fst(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(head(z0), x1)) -> c33(A__SPLITAT(a__head(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(natsFrom(z0), x1)) -> c33(A__SPLITAT(a__natsFrom(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(sel(z0, z1), x1)) -> c33(A__SPLITAT(a__sel(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(tail(z0), x1)) -> c33(A__SPLITAT(a__tail(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(take(z0, z1), x1)) -> c33(A__SPLITAT(a__take(mark(z0), mark(z1)), mark(x1)), MARK(x1)) MARK(splitAt(s(z0), x1)) -> c33(A__SPLITAT(s(mark(z0)), mark(x1)), MARK(x1)) MARK(splitAt(0, x1)) -> c33(A__SPLITAT(0, mark(x1)), MARK(x1)) MARK(splitAt(x0, tt)) -> c33(A__SPLITAT(mark(x0), tt)) MARK(splitAt(x0, 0)) -> c33(A__SPLITAT(mark(x0), 0)) MARK(splitAt(x0, nil)) -> c33(A__SPLITAT(mark(x0), nil)) MARK(splitAt(tt, x1)) -> c33(MARK(x1)) MARK(splitAt(pair(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(cons(z0, z1), x1)) -> c33(MARK(x1)) MARK(splitAt(nil, x1)) -> c33(MARK(x1)) MARK(snd(U11(z0, z1, z2, z3))) -> c36(A__SND(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(snd(U12(z0, z1))) -> c36(A__SND(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(snd(splitAt(z0, z1))) -> c36(A__SND(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(snd(afterNth(z0, z1))) -> c36(A__SND(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(snd(snd(z0))) -> c36(A__SND(a__snd(mark(z0))), MARK(snd(z0))) MARK(snd(and(z0, z1))) -> c36(A__SND(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(snd(fst(z0))) -> c36(A__SND(a__fst(mark(z0))), MARK(fst(z0))) MARK(snd(head(z0))) -> c36(A__SND(a__head(mark(z0))), MARK(head(z0))) MARK(snd(natsFrom(z0))) -> c36(A__SND(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(snd(sel(z0, z1))) -> c36(A__SND(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(snd(tail(z0))) -> c36(A__SND(a__tail(mark(z0))), MARK(tail(z0))) MARK(snd(take(z0, z1))) -> c36(A__SND(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(snd(pair(z0, z1))) -> c36(A__SND(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(snd(cons(z0, z1))) -> c36(MARK(cons(z0, z1))) MARK(snd(s(z0))) -> c36(MARK(s(z0))) MARK(and(U11(z0, z1, z2, z3), x1)) -> c37(A__AND(a__U11(mark(z0), z1, z2, z3), x1), MARK(U11(z0, z1, z2, z3))) MARK(and(U12(z0, z1), x1)) -> c37(A__AND(a__U12(mark(z0), z1), x1), MARK(U12(z0, z1))) MARK(and(splitAt(z0, z1), x1)) -> c37(A__AND(a__splitAt(mark(z0), mark(z1)), x1), MARK(splitAt(z0, z1))) MARK(and(afterNth(z0, z1), x1)) -> c37(A__AND(a__afterNth(mark(z0), mark(z1)), x1), MARK(afterNth(z0, z1))) MARK(and(snd(z0), x1)) -> c37(A__AND(a__snd(mark(z0)), x1), MARK(snd(z0))) MARK(and(and(z0, z1), x1)) -> c37(A__AND(a__and(mark(z0), z1), x1), MARK(and(z0, z1))) MARK(and(fst(z0), x1)) -> c37(A__AND(a__fst(mark(z0)), x1), MARK(fst(z0))) MARK(and(head(z0), x1)) -> c37(A__AND(a__head(mark(z0)), x1), MARK(head(z0))) MARK(and(natsFrom(z0), x1)) -> c37(A__AND(a__natsFrom(mark(z0)), x1), MARK(natsFrom(z0))) MARK(and(sel(z0, z1), x1)) -> c37(A__AND(a__sel(mark(z0), mark(z1)), x1), MARK(sel(z0, z1))) MARK(and(tail(z0), x1)) -> c37(A__AND(a__tail(mark(z0)), x1), MARK(tail(z0))) MARK(and(take(z0, z1), x1)) -> c37(A__AND(a__take(mark(z0), mark(z1)), x1), MARK(take(z0, z1))) MARK(and(tt, x1)) -> c37(A__AND(tt, x1)) MARK(and(pair(z0, z1), x1)) -> c37(MARK(pair(z0, z1))) MARK(and(cons(z0, z1), x1)) -> c37(MARK(cons(z0, z1))) MARK(and(s(z0), x1)) -> c37(MARK(s(z0))) MARK(fst(U11(z0, z1, z2, z3))) -> c38(A__FST(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(fst(U12(z0, z1))) -> c38(A__FST(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(fst(splitAt(z0, z1))) -> c38(A__FST(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(fst(afterNth(z0, z1))) -> c38(A__FST(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(fst(snd(z0))) -> c38(A__FST(a__snd(mark(z0))), MARK(snd(z0))) MARK(fst(and(z0, z1))) -> c38(A__FST(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(fst(fst(z0))) -> c38(A__FST(a__fst(mark(z0))), MARK(fst(z0))) MARK(fst(head(z0))) -> c38(A__FST(a__head(mark(z0))), MARK(head(z0))) MARK(fst(natsFrom(z0))) -> c38(A__FST(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(fst(sel(z0, z1))) -> c38(A__FST(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(fst(tail(z0))) -> c38(A__FST(a__tail(mark(z0))), MARK(tail(z0))) MARK(fst(take(z0, z1))) -> c38(A__FST(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(fst(pair(z0, z1))) -> c38(A__FST(pair(mark(z0), mark(z1))), MARK(pair(z0, z1))) MARK(fst(cons(z0, z1))) -> c38(MARK(cons(z0, z1))) MARK(fst(s(z0))) -> c38(MARK(s(z0))) MARK(head(U11(z0, z1, z2, z3))) -> c39(A__HEAD(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(head(U12(z0, z1))) -> c39(A__HEAD(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(head(splitAt(z0, z1))) -> c39(A__HEAD(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(head(afterNth(z0, z1))) -> c39(A__HEAD(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(head(snd(z0))) -> c39(A__HEAD(a__snd(mark(z0))), MARK(snd(z0))) MARK(head(and(z0, z1))) -> c39(A__HEAD(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(head(fst(z0))) -> c39(A__HEAD(a__fst(mark(z0))), MARK(fst(z0))) MARK(head(head(z0))) -> c39(A__HEAD(a__head(mark(z0))), MARK(head(z0))) MARK(head(natsFrom(z0))) -> c39(A__HEAD(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(head(sel(z0, z1))) -> c39(A__HEAD(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(head(tail(z0))) -> c39(A__HEAD(a__tail(mark(z0))), MARK(tail(z0))) MARK(head(take(z0, z1))) -> c39(A__HEAD(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(head(cons(z0, z1))) -> c39(A__HEAD(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(head(pair(z0, z1))) -> c39(MARK(pair(z0, z1))) MARK(head(s(z0))) -> c39(MARK(s(z0))) MARK(tail(U11(z0, z1, z2, z3))) -> c43(A__TAIL(a__U11(mark(z0), z1, z2, z3)), MARK(U11(z0, z1, z2, z3))) MARK(tail(U12(z0, z1))) -> c43(A__TAIL(a__U12(mark(z0), z1)), MARK(U12(z0, z1))) MARK(tail(splitAt(z0, z1))) -> c43(A__TAIL(a__splitAt(mark(z0), mark(z1))), MARK(splitAt(z0, z1))) MARK(tail(afterNth(z0, z1))) -> c43(A__TAIL(a__afterNth(mark(z0), mark(z1))), MARK(afterNth(z0, z1))) MARK(tail(snd(z0))) -> c43(A__TAIL(a__snd(mark(z0))), MARK(snd(z0))) MARK(tail(and(z0, z1))) -> c43(A__TAIL(a__and(mark(z0), z1)), MARK(and(z0, z1))) MARK(tail(fst(z0))) -> c43(A__TAIL(a__fst(mark(z0))), MARK(fst(z0))) MARK(tail(head(z0))) -> c43(A__TAIL(a__head(mark(z0))), MARK(head(z0))) MARK(tail(natsFrom(z0))) -> c43(A__TAIL(a__natsFrom(mark(z0))), MARK(natsFrom(z0))) MARK(tail(sel(z0, z1))) -> c43(A__TAIL(a__sel(mark(z0), mark(z1))), MARK(sel(z0, z1))) MARK(tail(tail(z0))) -> c43(A__TAIL(a__tail(mark(z0))), MARK(tail(z0))) MARK(tail(take(z0, z1))) -> c43(A__TAIL(a__take(mark(z0), mark(z1))), MARK(take(z0, z1))) MARK(tail(cons(z0, z1))) -> c43(A__TAIL(cons(mark(z0), z1)), MARK(cons(z0, z1))) MARK(tail(pair(z0, z1))) -> c43(MARK(pair(z0, z1))) MARK(tail(s(z0))) -> c43(MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, z1, z2, z3)) -> c(A__U12(a__splitAt(mark(x0), U11(mark(x2), z1, z2, z3)), x1), A__SPLITAT(mark(x0), mark(U11(x2, z1, z2, z3))), MARK(x0)) A__U11(tt, x0, x1, U11(U11(z0, z1, z2, z3), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U11(mark(z0), z1, z2, z3), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U11(z0, z1, z2, z3), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(U12(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__U12(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(U12(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(splitAt(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__splitAt(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(splitAt(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(afterNth(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__afterNth(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(afterNth(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(snd(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__snd(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(snd(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(and(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__and(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(and(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(fst(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__fst(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(fst(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(head(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__head(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(head(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(natsFrom(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__natsFrom(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(natsFrom(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(sel(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__sel(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(sel(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tail(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__tail(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tail(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(take(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(a__take(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(take(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(tt, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(tt, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(tt, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(pair(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(pair(mark(z0), mark(z1)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(pair(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(cons(z0, z1), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(cons(mark(z0), z1), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(cons(z0, z1), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(s(z0), x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(s(mark(z0)), x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(s(z0), x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(0, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(0, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(0, x3, x4, x5))), MARK(x0)) A__U11(tt, x0, x1, U11(nil, x3, x4, x5)) -> c(A__U12(a__splitAt(mark(x0), a__U11(nil, x3, x4, x5)), x1), A__SPLITAT(mark(x0), mark(U11(nil, x3, x4, x5))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U11(x2, x3, x4, x5))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(snd(z0)), mark(U11(x2, x3, x4, x5))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(fst(z0)), mark(U11(x2, x3, x4, x5))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(head(z0)), mark(U11(x2, x3, x4, x5))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U11(x2, x3, x4, x5))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tail(z0)), mark(U11(x2, x3, x4, x5))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U11(x2, x3, x4, x5))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(s(z0)), mark(U11(x2, x3, x4, x5))), MARK(s(z0))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U11(x2, x3, x4, x5)) -> c(A__SPLITAT(mark(x0), mark(U11(x2, x3, x4, x5))), MARK(x0)) A__U11(tt, tt, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(tt, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(tt), mark(U11(x2, x3, x4, x5)))) A__U11(tt, 0, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(0, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(0), mark(U11(x2, x3, x4, x5)))) A__U11(tt, nil, x1, U11(x2, x3, x4, x5)) -> c(A__U12(a__splitAt(nil, a__U11(mark(x2), x3, x4, x5)), x1), A__SPLITAT(mark(nil), mark(U11(x2, x3, x4, x5)))) A__U11(tt, x0, x1, U12(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), U12(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(U12(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, U12(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(tt, x3)), x1), A__SPLITAT(mark(x0), mark(U12(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(U12(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(U12(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, U12(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(0, x3)), x1), A__SPLITAT(mark(x0), mark(U12(0, x3))), MARK(x0)) A__U11(tt, x0, x1, U12(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__U12(nil, x3)), x1), A__SPLITAT(mark(x0), mark(U12(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(U12(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(U12(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(U12(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(U12(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(U12(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(U12(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(U12(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(U12(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(U12(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(U12(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(U12(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(U12(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(U12(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(U12(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, U12(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(U12(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3)))) A__U11(tt, x0, x1, U12(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(U12(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(tt, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(U12(x2, x3)))) A__U11(tt, 0, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(0, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(U12(x2, x3)))) A__U11(tt, nil, x1, U12(x2, x3)) -> c(A__U12(a__splitAt(nil, a__U12(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(U12(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, splitAt(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(splitAt(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(0, x3))), MARK(x0)) A__U11(tt, x0, x1, splitAt(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__splitAt(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(splitAt(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(splitAt(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(splitAt(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(splitAt(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(splitAt(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(splitAt(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(splitAt(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(splitAt(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(splitAt(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(splitAt(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(splitAt(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(splitAt(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(splitAt(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(splitAt(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(splitAt(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(splitAt(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, splitAt(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(splitAt(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(tt, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(splitAt(x2, x3)))) A__U11(tt, 0, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(0, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(splitAt(x2, x3)))) A__U11(tt, nil, x1, splitAt(x2, x3)) -> c(A__U12(a__splitAt(nil, a__splitAt(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(splitAt(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, afterNth(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(afterNth(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(0, x3))), MARK(x0)) A__U11(tt, x0, x1, afterNth(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__afterNth(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(afterNth(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(afterNth(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(afterNth(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(afterNth(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(afterNth(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(afterNth(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(afterNth(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(afterNth(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(afterNth(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(afterNth(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(afterNth(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(afterNth(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(afterNth(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(afterNth(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(afterNth(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(afterNth(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, afterNth(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(afterNth(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(tt, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(afterNth(x2, x3)))) A__U11(tt, 0, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(0, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(afterNth(x2, x3)))) A__U11(tt, nil, x1, afterNth(x2, x3)) -> c(A__U12(a__splitAt(nil, a__afterNth(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(afterNth(x2, x3)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__U12(a__splitAt(mark(x0), snd(mark(x2))), x1), A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, x0, x1, snd(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(snd(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, snd(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(tt)) -> c(A__U12(a__splitAt(mark(x0), a__snd(tt)), x1), A__SPLITAT(mark(x0), mark(snd(tt))), MARK(x0)) A__U11(tt, x0, x1, snd(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(snd(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__snd(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(snd(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, snd(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__snd(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(snd(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, snd(0)) -> c(A__U12(a__splitAt(mark(x0), a__snd(0)), x1), A__SPLITAT(mark(x0), mark(snd(0))), MARK(x0)) A__U11(tt, x0, x1, snd(nil)) -> c(A__U12(a__splitAt(mark(x0), a__snd(nil)), x1), A__SPLITAT(mark(x0), mark(snd(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__snd(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(snd(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(snd(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(snd(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(snd(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(snd(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(snd(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(snd(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(snd(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(snd(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(snd(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(snd(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(snd(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__snd(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(snd(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, snd(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__snd(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(snd(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, snd(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__snd(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(snd(x2))), MARK(s(z0))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2)))) A__U11(tt, x0, x1, snd(x2)) -> c(A__SPLITAT(mark(x0), mark(snd(x2))), MARK(x0)) A__U11(tt, tt, x1, snd(x2)) -> c(A__U12(a__splitAt(tt, a__snd(mark(x2))), x1), A__SPLITAT(mark(tt), mark(snd(x2)))) A__U11(tt, 0, x1, snd(x2)) -> c(A__U12(a__splitAt(0, a__snd(mark(x2))), x1), A__SPLITAT(mark(0), mark(snd(x2)))) A__U11(tt, nil, x1, snd(x2)) -> c(A__U12(a__splitAt(nil, a__snd(mark(x2))), x1), A__SPLITAT(mark(nil), mark(snd(x2)))) A__U11(tt, x0, x1, and(x2, z1)) -> c(A__U12(a__splitAt(mark(x0), and(mark(x2), z1)), x1), A__SPLITAT(mark(x0), mark(and(x2, z1))), MARK(x0)) A__U11(tt, x0, x1, and(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U11(mark(z0), z1, z2, z3), x3)), x1), A__SPLITAT(mark(x0), mark(and(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, and(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__U12(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__splitAt(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__afterNth(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__snd(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__and(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__fst(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__head(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__natsFrom(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__sel(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__tail(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(a__take(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(tt, x3)), x1), A__SPLITAT(mark(x0), mark(and(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, and(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(pair(mark(z0), mark(z1)), x3)), x1), A__SPLITAT(mark(x0), mark(and(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(cons(mark(z0), z1), x3)), x1), A__SPLITAT(mark(x0), mark(and(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, and(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(s(mark(z0)), x3)), x1), A__SPLITAT(mark(x0), mark(and(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, and(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(0, x3)), x1), A__SPLITAT(mark(x0), mark(and(0, x3))), MARK(x0)) A__U11(tt, x0, x1, and(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__and(nil, x3)), x1), A__SPLITAT(mark(x0), mark(and(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(and(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(U12(z0, z1)), mark(and(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(and(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(and(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(snd(z0)), mark(and(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(and(z0, z1)), mark(and(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(fst(z0)), mark(and(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(head(z0)), mark(and(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(natsFrom(z0)), mark(and(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(sel(z0, z1)), mark(and(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tail(z0)), mark(and(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(take(z0, z1)), mark(and(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(pair(z0, z1)), mark(and(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, and(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(cons(z0, z1)), mark(and(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, and(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__and(mark(x2), x3)), x1), A__SPLITAT(mark(s(z0)), mark(and(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3)))) A__U11(tt, x0, x1, and(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(and(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, and(x2, x3)) -> c(A__U12(a__splitAt(tt, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(tt), mark(and(x2, x3)))) A__U11(tt, 0, x1, and(x2, x3)) -> c(A__U12(a__splitAt(0, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(0), mark(and(x2, x3)))) A__U11(tt, nil, x1, and(x2, x3)) -> c(A__U12(a__splitAt(nil, a__and(mark(x2), x3)), x1), A__SPLITAT(mark(nil), mark(and(x2, x3)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__U12(a__splitAt(mark(x0), fst(mark(x2))), x1), A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, x0, x1, fst(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(fst(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, fst(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(tt)) -> c(A__U12(a__splitAt(mark(x0), a__fst(tt)), x1), A__SPLITAT(mark(x0), mark(fst(tt))), MARK(x0)) A__U11(tt, x0, x1, fst(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(fst(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__fst(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(fst(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, fst(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__fst(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(fst(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, fst(0)) -> c(A__U12(a__splitAt(mark(x0), a__fst(0)), x1), A__SPLITAT(mark(x0), mark(fst(0))), MARK(x0)) A__U11(tt, x0, x1, fst(nil)) -> c(A__U12(a__splitAt(mark(x0), a__fst(nil)), x1), A__SPLITAT(mark(x0), mark(fst(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__fst(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(fst(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(fst(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(fst(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(fst(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(fst(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(fst(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(fst(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(fst(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(fst(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(fst(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(fst(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(fst(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__fst(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(fst(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, fst(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__fst(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(fst(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, fst(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__fst(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(fst(x2))), MARK(s(z0))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2)))) A__U11(tt, x0, x1, fst(x2)) -> c(A__SPLITAT(mark(x0), mark(fst(x2))), MARK(x0)) A__U11(tt, tt, x1, fst(x2)) -> c(A__U12(a__splitAt(tt, a__fst(mark(x2))), x1), A__SPLITAT(mark(tt), mark(fst(x2)))) A__U11(tt, 0, x1, fst(x2)) -> c(A__U12(a__splitAt(0, a__fst(mark(x2))), x1), A__SPLITAT(mark(0), mark(fst(x2)))) A__U11(tt, nil, x1, fst(x2)) -> c(A__U12(a__splitAt(nil, a__fst(mark(x2))), x1), A__SPLITAT(mark(nil), mark(fst(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__U12(a__splitAt(mark(x0), head(mark(x2))), x1), A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, x0, x1, head(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(head(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, head(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(tt)) -> c(A__U12(a__splitAt(mark(x0), a__head(tt)), x1), A__SPLITAT(mark(x0), mark(head(tt))), MARK(x0)) A__U11(tt, x0, x1, head(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(head(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__head(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(head(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, head(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__head(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(head(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, head(0)) -> c(A__U12(a__splitAt(mark(x0), a__head(0)), x1), A__SPLITAT(mark(x0), mark(head(0))), MARK(x0)) A__U11(tt, x0, x1, head(nil)) -> c(A__U12(a__splitAt(mark(x0), a__head(nil)), x1), A__SPLITAT(mark(x0), mark(head(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, head(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__head(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(head(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(head(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(head(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(head(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(head(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(head(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(head(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(head(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(head(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(head(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, head(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(head(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(head(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__head(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(head(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, head(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__head(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(head(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, head(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__head(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(head(x2))), MARK(s(z0))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2)))) A__U11(tt, x0, x1, head(x2)) -> c(A__SPLITAT(mark(x0), mark(head(x2))), MARK(x0)) A__U11(tt, tt, x1, head(x2)) -> c(A__U12(a__splitAt(tt, a__head(mark(x2))), x1), A__SPLITAT(mark(tt), mark(head(x2)))) A__U11(tt, 0, x1, head(x2)) -> c(A__U12(a__splitAt(0, a__head(mark(x2))), x1), A__SPLITAT(mark(0), mark(head(x2)))) A__U11(tt, nil, x1, head(x2)) -> c(A__U12(a__splitAt(nil, a__head(mark(x2))), x1), A__SPLITAT(mark(nil), mark(head(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), cons(mark(mark(x2)), natsFrom(s(mark(x2))))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(mark(x0), natsFrom(mark(x2))), x1), A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(tt)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(tt)), x1), A__SPLITAT(mark(x0), mark(natsFrom(tt))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(natsFrom(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(natsFrom(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(0)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(0)), x1), A__SPLITAT(mark(x0), mark(natsFrom(0))), MARK(x0)) A__U11(tt, x0, x1, natsFrom(nil)) -> c(A__U12(a__splitAt(mark(x0), a__natsFrom(nil)), x1), A__SPLITAT(mark(x0), mark(natsFrom(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(natsFrom(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(natsFrom(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(natsFrom(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(natsFrom(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(natsFrom(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(natsFrom(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(natsFrom(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(natsFrom(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(natsFrom(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(natsFrom(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(natsFrom(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(natsFrom(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(natsFrom(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(natsFrom(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, natsFrom(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(natsFrom(x2))), MARK(s(z0))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2)))) A__U11(tt, x0, x1, natsFrom(x2)) -> c(A__SPLITAT(mark(x0), mark(natsFrom(x2))), MARK(x0)) A__U11(tt, tt, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(tt, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(tt), mark(natsFrom(x2)))) A__U11(tt, 0, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(0, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(0), mark(natsFrom(x2)))) A__U11(tt, nil, x1, natsFrom(x2)) -> c(A__U12(a__splitAt(nil, a__natsFrom(mark(x2))), x1), A__SPLITAT(mark(nil), mark(natsFrom(x2)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__head(a__afterNth(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(sel(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(sel(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(sel(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(sel(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, sel(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__sel(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(sel(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, sel(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, sel(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(0, x3))), MARK(x0)) A__U11(tt, x0, x1, sel(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__sel(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(sel(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(sel(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(sel(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(sel(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(sel(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(sel(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(sel(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(sel(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(sel(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(sel(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(sel(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(sel(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(sel(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(sel(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(sel(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, sel(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(sel(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3)))) A__U11(tt, x0, x1, sel(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(sel(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(tt, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(sel(x2, x3)))) A__U11(tt, 0, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(0, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(sel(x2, x3)))) A__U11(tt, nil, x1, sel(x2, x3)) -> c(A__U12(a__splitAt(nil, a__sel(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(sel(x2, x3)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__U12(a__splitAt(mark(x0), tail(mark(x2))), x1), A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, x0, x1, tail(U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(tail(U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, tail(U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(head(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(tt)) -> c(A__U12(a__splitAt(mark(x0), a__tail(tt)), x1), A__SPLITAT(mark(x0), mark(tail(tt))), MARK(x0)) A__U11(tt, x0, x1, tail(pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(tail(pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__tail(cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(tail(cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, tail(s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__tail(s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(tail(s(z0)))), MARK(x0)) A__U11(tt, x0, x1, tail(0)) -> c(A__U12(a__splitAt(mark(x0), a__tail(0)), x1), A__SPLITAT(mark(x0), mark(tail(0))), MARK(x0)) A__U11(tt, x0, x1, tail(nil)) -> c(A__U12(a__splitAt(mark(x0), a__tail(nil)), x1), A__SPLITAT(mark(x0), mark(tail(nil))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__tail(mark(x2))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tail(x2))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tail(x2))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tail(x2))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tail(x2))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(snd(z0)), mark(tail(x2))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(and(z0, z1)), mark(tail(x2))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(fst(z0)), mark(tail(x2))), MARK(fst(z0))) A__U11(tt, head(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(head(z0)), mark(tail(x2))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tail(x2))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tail(x2))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(tail(z0)), mark(tail(x2))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(take(z0, z1)), mark(tail(x2))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__tail(mark(x2))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tail(x2))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tail(x2)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__tail(mark(x2))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tail(x2))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tail(x2)) -> c(A__U12(a__splitAt(s(mark(z0)), a__tail(mark(x2))), x1), A__SPLITAT(mark(s(z0)), mark(tail(x2))), MARK(s(z0))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2)))) A__U11(tt, x0, x1, tail(x2)) -> c(A__SPLITAT(mark(x0), mark(tail(x2))), MARK(x0)) A__U11(tt, tt, x1, tail(x2)) -> c(A__U12(a__splitAt(tt, a__tail(mark(x2))), x1), A__SPLITAT(mark(tt), mark(tail(x2)))) A__U11(tt, 0, x1, tail(x2)) -> c(A__U12(a__splitAt(0, a__tail(mark(x2))), x1), A__SPLITAT(mark(0), mark(tail(x2)))) A__U11(tt, nil, x1, tail(x2)) -> c(A__U12(a__splitAt(nil, a__tail(mark(x2))), x1), A__SPLITAT(mark(nil), mark(tail(x2)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), a__fst(a__splitAt(mark(mark(x2)), mark(mark(x3))))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(mark(x0), take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(take(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(take(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, take(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(take(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(take(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(take(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, take(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(take(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, take(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), a__take(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(take(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, take(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, take(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, take(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, take(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, take(0, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(0, x3))), MARK(x0)) A__U11(tt, x0, x1, take(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), a__take(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(take(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(take(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(take(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(take(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(take(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(take(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(take(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(take(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(take(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(take(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(take(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(take(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(take(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(take(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, take(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(take(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, take(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(take(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3)))) A__U11(tt, x0, x1, take(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(take(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, take(x2, x3)) -> c(A__U12(a__splitAt(tt, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(take(x2, x3)))) A__U11(tt, 0, x1, take(x2, x3)) -> c(A__U12(a__splitAt(0, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(take(x2, x3)))) A__U11(tt, nil, x1, take(x2, x3)) -> c(A__U12(a__splitAt(nil, a__take(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(take(x2, x3)))) A__U11(tt, U11(z0, z1, z2, z3), x1, tt) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), tt), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(tt)), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), tt), x1), A__SPLITAT(mark(U12(z0, z1)), mark(tt)), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(tt)), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(tt)), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, tt) -> c(A__U12(a__splitAt(a__snd(mark(z0)), tt), x1), A__SPLITAT(mark(snd(z0)), mark(tt)), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), tt), x1), A__SPLITAT(mark(and(z0, z1)), mark(tt)), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, tt) -> c(A__U12(a__splitAt(a__fst(mark(z0)), tt), x1), A__SPLITAT(mark(fst(z0)), mark(tt)), MARK(fst(z0))) A__U11(tt, head(z0), x1, tt) -> c(A__U12(a__splitAt(a__head(mark(z0)), tt), x1), A__SPLITAT(mark(head(z0)), mark(tt)), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, tt) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), tt), x1), A__SPLITAT(mark(natsFrom(z0)), mark(tt)), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(sel(z0, z1)), mark(tt)), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, tt) -> c(A__U12(a__splitAt(a__tail(mark(z0)), tt), x1), A__SPLITAT(mark(tail(z0)), mark(tt)), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, tt) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(take(z0, z1)), mark(tt)), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, tt) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), tt), x1), A__SPLITAT(mark(pair(z0, z1)), mark(tt)), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, tt) -> c(A__U12(a__splitAt(cons(mark(z0), z1), tt), x1), A__SPLITAT(mark(cons(z0, z1)), mark(tt)), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, tt) -> c(A__U12(a__splitAt(s(mark(z0)), tt), x1), A__SPLITAT(mark(s(z0)), mark(tt)), MARK(s(z0))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt))) A__U11(tt, x0, x1, tt) -> c(A__SPLITAT(mark(x0), mark(tt)), MARK(x0)) A__U11(tt, tt, x1, tt) -> c(A__U12(a__splitAt(tt, tt), x1), A__SPLITAT(mark(tt), mark(tt))) A__U11(tt, 0, x1, tt) -> c(A__U12(a__splitAt(0, tt), x1), A__SPLITAT(mark(0), mark(tt))) A__U11(tt, nil, x1, tt) -> c(A__U12(a__splitAt(nil, tt), x1), A__SPLITAT(mark(nil), mark(tt))) A__U11(tt, x0, x1, pair(x2, U11(z0, z1, z2, z3))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U11(mark(z0), z1, z2, z3))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U11(z0, z1, z2, z3)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, U12(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__U12(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, U12(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, splitAt(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__splitAt(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, splitAt(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, afterNth(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__afterNth(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, afterNth(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, snd(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__snd(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, snd(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, and(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__and(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, and(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, fst(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__fst(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, fst(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, head(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__head(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, head(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, natsFrom(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__natsFrom(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, natsFrom(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, sel(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__sel(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, sel(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tail(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__tail(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, tail(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, take(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), a__take(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, take(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, tt)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), tt)), x1), A__SPLITAT(mark(x0), mark(pair(x2, tt))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, pair(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), pair(mark(z0), mark(z1)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, pair(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, cons(z0, z1))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), cons(mark(z0), z1))), x1), A__SPLITAT(mark(x0), mark(pair(x2, cons(z0, z1)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, s(z0))) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), s(mark(z0)))), x1), A__SPLITAT(mark(x0), mark(pair(x2, s(z0)))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, 0)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), 0)), x1), A__SPLITAT(mark(x0), mark(pair(x2, 0))), MARK(x0)) A__U11(tt, x0, x1, pair(x2, nil)) -> c(A__U12(a__splitAt(mark(x0), pair(mark(x2), nil)), x1), A__SPLITAT(mark(x0), mark(pair(x2, nil))), MARK(x0)) A__U11(tt, x0, x1, pair(U11(z0, z1, z2, z3), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U11(mark(z0), z1, z2, z3), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U11(z0, z1, z2, z3), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(U12(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__U12(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(U12(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(splitAt(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__splitAt(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(splitAt(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(afterNth(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__afterNth(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(afterNth(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(snd(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__snd(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(snd(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(and(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__and(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(and(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(fst(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__fst(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(fst(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(head(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__head(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(head(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(natsFrom(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__natsFrom(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(natsFrom(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(sel(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__sel(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(sel(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tail(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__tail(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tail(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(take(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(a__take(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(take(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(tt, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(tt, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(tt, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(pair(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(pair(mark(z0), mark(z1)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(pair(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(cons(z0, z1), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(cons(mark(z0), z1), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(cons(z0, z1), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(s(z0), x3)) -> c(A__U12(a__splitAt(mark(x0), pair(s(mark(z0)), mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(s(z0), x3))), MARK(x0)) A__U11(tt, x0, x1, pair(0, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(0, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(0, x3))), MARK(x0)) A__U11(tt, x0, x1, pair(nil, x3)) -> c(A__U12(a__splitAt(mark(x0), pair(nil, mark(x3))), x1), A__SPLITAT(mark(x0), mark(pair(nil, x3))), MARK(x0)) A__U11(tt, U11(z0, z1, z2, z3), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U11(mark(z0), z1, z2, z3), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U11(z0, z1, z2, z3)), mark(pair(x2, x3))), MARK(U11(z0, z1, z2, z3))) A__U11(tt, U12(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__U12(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(U12(z0, z1)), mark(pair(x2, x3))), MARK(U12(z0, z1))) A__U11(tt, splitAt(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__splitAt(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(splitAt(z0, z1)), mark(pair(x2, x3))), MARK(splitAt(z0, z1))) A__U11(tt, afterNth(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__afterNth(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(afterNth(z0, z1)), mark(pair(x2, x3))), MARK(afterNth(z0, z1))) A__U11(tt, snd(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__snd(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(snd(z0)), mark(pair(x2, x3))), MARK(snd(z0))) A__U11(tt, and(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__and(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(and(z0, z1)), mark(pair(x2, x3))), MARK(and(z0, z1))) A__U11(tt, fst(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__fst(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(fst(z0)), mark(pair(x2, x3))), MARK(fst(z0))) A__U11(tt, head(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__head(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(head(z0)), mark(pair(x2, x3))), MARK(head(z0))) A__U11(tt, natsFrom(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__natsFrom(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(natsFrom(z0)), mark(pair(x2, x3))), MARK(natsFrom(z0))) A__U11(tt, sel(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__sel(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(sel(z0, z1)), mark(pair(x2, x3))), MARK(sel(z0, z1))) A__U11(tt, tail(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__tail(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tail(z0)), mark(pair(x2, x3))), MARK(tail(z0))) A__U11(tt, take(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(a__take(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(take(z0, z1)), mark(pair(x2, x3))), MARK(take(z0, z1))) A__U11(tt, pair(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(pair(mark(z0), mark(z1)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(pair(z0, z1)), mark(pair(x2, x3))), MARK(pair(z0, z1))) A__U11(tt, cons(z0, z1), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(cons(mark(z0), z1), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(cons(z0, z1)), mark(pair(x2, x3))), MARK(cons(z0, z1))) A__U11(tt, s(z0), x1, pair(x2, x3)) -> c(A__U12(a__splitAt(s(mark(z0)), pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(s(z0)), mark(pair(x2, x3))), MARK(s(z0))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3)))) A__U11(tt, x0, x1, pair(x2, x3)) -> c(A__SPLITAT(mark(x0), mark(pair(x2, x3))), MARK(x0)) A__U11(tt, tt, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(tt, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(tt), mark(pair(x2, x3)))) A__U11(tt, 0, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(0, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(0), mark(pair(x2, x3)))) A__U11(tt, nil, x1, pair(x2, x3)) -> c(A__U12(a__splitAt(nil, pair(mark(x2), mark(x3))), x1), A__SPLITAT(mark(nil), mark(pair(x2, x3)))) K tuples:none Defined Rule Symbols: a__U11_4, a__U12_2, a__afterNth_2, a__and_2, a__fst_1, a__head_1, a__natsFrom_1, a__sel_2, a__snd_1, a__splitAt_2, a__tail_1, a__take_2, mark_1 Defined Pair Symbols: A__U12_2, A__AND_2, A__FST_1, A__HEAD_1, A__NATSFROM_1, A__SND_1, A__SPLITAT_2, A__TAIL_1, MARK_1, A__U11_4, A__AFTERNTH_2, A__SEL_2, A__TAKE_2 Compound Symbols: c3_1, c4_1, c9_1, c11_1, c13_1, c15_1, c20_1, c22_1, c23_1, c25_1, c34_2, c35_2, c40_2, c41_2, c42_2, c44_2, c45_2, c47_1, c48_1, c49_1, c50_1, c_3, c_2, c1_3, c1_2, c6_3, c6_2, c7_3, c7_2, c17_3, c17_2, c18_3, c18_2, c27_3, c27_2, c28_3, c28_2, c30_2, c30_1, c31_2, c31_1, c32_2, c32_1, c33_2, c33_1, c36_2, c36_1, c37_2, c37_1, c38_2, c38_1, c39_2, c39_1, c43_2, c43_1, c_1